2009-06-17 16 views
7

Estoy creando un informe 'maestro' en SSRS 2008 que colabora con otros informes sobre una persona. A veces, no todos los demás informes son relevantes y, como tales, no devuelven nada. Me gustaría poder excluir esto del informe maestro para que no deje una página en blanco.Cómo suprimir subinformes vacíos en SSRS 2008

Conozco la función 'no-rows-message', pero una página entera con simplemente "No aplicable para esta persona" no es la mejor solución.

Básicamente, estoy buscando una forma de determinar si un subinforme está 'vacío' y usarlo en una expresión de visibilidad.

Cualquier ayuda es muy apreciada

Respuesta

13

bien, así que tengo esta resuelto ahora. La respuesta es colocar el subinforme en un rectángulo. A continuación, establezca la visibilidad del rectángulo a algo como esto:

=IIF(First(Fields![SOMEFEILD].Value, "[SOMEDATASET]") IS NOTHING, TRUE, FALSE) 

Dónde [SOMEDATASET] es un conjunto de datos de población del mismo modo que el uno poblar el informe integrado. Entonces, si el subinforme está vacío, entonces [SOMEDATASET] también estará vacío, y más al punto, el campo [SOMEFEILD] será igual a NOTHING.

Bada-Bing! Un informe que no está atestado de páginas vacías de papel desperdiciado.

Nota: hay un efecto secundario negativo en este enfoque, ya que el servidor SQL enviará la misma información dos veces, una para completar el conjunto de datos del informe integrado y otra vez para completar el conjunto de datos duplicados en el informe. Para mí, esto es aceptable, otros pueden querer estar al tanto de esto.

+0

Buen trabajo. (memoria intermedia para cumplir con el límite de 15 caracteres) – jgallant

+3

Después de reflexionar sobre el problema durante mi hora del almuerzo, he decidido que devolver los mismos datos dos veces es * nunca * una buena idea. Voy a escribir un procedimiento almacenado que devuelve solo el recuento de filas de los procedimientos almacenados utilizados para rellenar los subinformes. Luego prueba para ver si estos recuentos son 0 o no y establece la visibilidad de los subinformes apropiados en consecuencia. – Brian

+2

gracias por la idea, necesitaba oscurecer una celda en el informe tablix si el informe interno no devuelve nada. Así que simplemente puse un subinforme en un rectángulo y establecí el color de fondo del rectángulo en gris. Ni siquiera tuve que usar expresiones ya que SSRS no devuelve nada si un informe no devuelve nada. El único problema que tuve cuando imprimí mi informe fue que no mostraba la celda gris impresa o en PDF (pero sí lo mostré en la pantalla), así que simplemente configuré No filas de texto para un subinforme a = CHR (32) y lo logré . ¡Gracias por la idea! – mishkin

Cuestiones relacionadas