sql server 2005 - por - SSRS 2005: bucle a través de los parámetros del informe
pasar parametros por url reporting services (3)
Me gustaría poder recorrer todos los parámetros definidos en mis informes y construir una cadena de visualización del nombre y valor del parámetro. A continuación, mostraba los resultados en el informe para que el usuario sepa qué parámetros se usaron para esa ejecución específica. El único problema es que no puedo recorrer la colección de Parámetros. No parece haber un indexador en la colección Parámetros, ni parece implementar IEnumerable. ¿Alguien ha sido capaz de lograr esto? Estoy utilizando SSRS 2005 y debe implementarse dentro del Código de informe (es decir, sin ensamblaje externo). ¡Gracias!
Desafortunadamente, parece que no hay una forma simple de hacer esto. Consulte http://www.jameskovacs.com/blog/DiggingDeepIntoReportingServices.aspx para obtener más información. Si miras los comentarios de esa publicación , hay algunas formas de evitar esto, pero no son muy elegantes. La solución más simple requerirá que tenga una lista de los parámetros del informe en algún lugar de su Código de informe, que obviamente viola el principio DRY , pero si desea la solución más simple, puede que tenga que vivir con eso.
Es posible que desee replantear su restricción de ningún ensamblaje externo, ya que me parece que sería mucho más fácil hacerlo con un ensamblaje externo. O si su informe no va a cambiar mucho, puede crear la lista de nombres y valores de parámetros manualmente.
Si entiendo su pregunta, simplemente haga lo que hago: coloque un cuadro de texto en el informe, luego, mientras está configurando el informe, inserte lo siguiente: = "Parámetro1:" + Parámetros! Parámetro.Etiqueta + ", Parámetro2: "+ Parámetros! Parameter2.Label ...
Por supuesto, no es lo más bonito, pero funciona bastante bien en nuestra aplicación.
Y estoy usando etiquetas en lugar de valores ya que tenemos valores de fecha y hora, y al usuario solo le importa la fecha corta o el mes y el año (dependiendo de las circunstancias), y ya he hecho ese trabajo de formateo al configurar los parámetros .
Puedo pensar en al menos dos formas de hacer esto. El primero podría funcionar, el segundo definitivamente funcionará.
Usa el servicio web Estoy bastante seguro de que vi API para obtener una colección de parámetros. Incluso si no hay acceso directo, siempre puede crear una colección estándar y copiar los objetos ReportParameter de uno a otro en un bucle foreach, y luego acceder a Count, con propiedades de parámetros individuales disponibles al eliminar la referencia de las instancias de ReportParameter.
Los informes son RDL. RDL es XML. Cree un XmlDocument y cargue el archivo RDL, luego use el DOM para hacer, bueno, cualquier cosa que desee hasta e incluyendo el establecimiento de valores predeterminados o incluso la reescritura de las cadenas de conexión.
Si su aplicación no tendrá acceso al sistema de archivos a los archivos RDL, puede obtenerlos a través del servicio web.