2011-04-06 16 views
13

Tengo problemas con algunos elementos del informe que cambian las posiciones de otros artículos cuando están ocultos de forma condicional.Informe los elementos que afectan las posiciones de los demás en SSRS 2008

He estado utilizando Reporting Services 2000 para imprimir etiquetas de precios de artículos como archivos PDF, con el informe que consiste en una sola tabla con una sola celda para cada artículo. Los campos de datos y otros elementos en la etiqueta están ubicados dentro de un único rectángulo. Debido a la disposición muy específica requerida, algunos de los elementos del informe se superponen en el diseñador para posicionarse correctamente en el PDF procesado.

Esto funcionó bien durante varios años, hasta que nos actualizamos a SSRS 2008 y tuve que migrar el informe a la nueva versión.

Ahora, de repente, cuando ciertos elementos en el informe están ocultos (por una expresión en la propiedad Oculta), ciertos otros elementos cambian sus posiciones. En algunos casos, incluso el rectángulo que lo contiene se redimensiona.

Después de bastante googlear, he llegado al acuerdo de que SSRS 2008 intenta mantener el espaciado relativo entre los elementos de informe, de modo que si un elemento a la izquierda de otro cambia de tamaño, el elemento a la la derecha se ajusta en consecuencia.

Aparentemente, ocultar un elemento equivale a cambiar su tamaño a cero, por lo que el elemento al lado se desplaza hacia la izquierda para llenar el espacio.

Sin embargo, no quiero este comportamiento, ya que todos los elementos deben permanecer en sus posiciones predefinidas independientemente de los demás.

Entonces, ¿alguien sabe de una manera de "arreglar" las posiciones de los artículos del informe, para que no se vean afectados por la ocultación de otros artículos?

He intentado colocar los elementos en rectángulos separados para agruparlos, con la esperanza de que solo los elementos dentro del mismo rectángulo puedan afectarse entre sí, pero esto no parece ayudar.

Cualquier idea sería muy apreciada.

Respuesta

11

En el ejemplo de lado a lado, puede colocar el control que puede estar oculto en un rectángulo lo suficientemente grande como para contener ambos; pero luego coloque el otro control que debe permanecer en una posición fija DETRÁS del rectángulo (es decir, el elemento primario de este control es el informe en lugar del rectángulo).

Si eso no es suficiente, y los elementos ocultos y no ocultos usan el mismo conjunto de datos, podría (estremecerse) usar un control Tablix gigante con una agrupación de = 1 y el número correcto de filas y columnas para controlar el diseño (porque puedes insertar rectángulos dentro).

Algunos otros trucos son establecer las propiedades de color/backgroundcolor en blanco (aunque en algunos formatos de representación puede hacer clic y arrastrar para resaltar y seguir leyendo lo que estaba allí) ... alternativamente, puede llegar al extremo El contenido de los controles controla todas las expresiones, para no producir nada si se cumple una condición, y por lo tanto es básicamente invisible.

+1

¡Dios mío, eso funcionó! ¡Había intentado todo eso, excepto establecer el índice Z del rectángulo de contención frente a los campos afectados! Enormes gracias, hombre, ¡salvaste mi día!Desearía que SSRS tuviera alguna propiedad para desactivar esta característica de "diseño dinámico", pero por ahora, esto soluciona mis problemas sin demasiada molestia. – Rolf

+0

Tengo el mismo problema en 2012. Encontré una solución más detallada aquí: http://dinesql.blogspot.com/2010/05/reporting-services-textbox-changes.html – scar80

0

Otro enfoque: cree rectángulos que contengan los campos que desea ocultar, luego coloque una línea BLANCA en toda la parte inferior (o superior) del rectángulo. Esto mantiene el rectángulo del mismo tamaño incluso si los campos dentro de él están ocultos. Un rectángulo se contraerá si los campos dentro de él se reducen, pero la línea que abarca todo el rectángulo evita que esto suceda.

Cuestiones relacionadas