2010-03-08 33 views
7

Tengo un informe rdlc personalizable donde el usuario puede elegir las columnas para mostrar. Todas las columnas están incluidas en el diseñador de informes, y utilizo parámetros para ocultar/mostrar columnas según la elección del usuario. El informe hace correctamente, y sólo se muestran las columnas seleccionadas, sin embargo, la anchura total del informe es el mismo que si todas las columnas eran visibles. Esto significa que el informe puede tener una gran área vacía a la derecha de las columnas seleccionadas, lo que parece muy tonto.¿Cómo ajusto el ancho total del informe rdlc cuando algunas columnas están ocultas?

Así que mi pregunta: ¿hay alguna manera de ajustar el ancho del informe dinámicamente en tiempo de ejecución para evitar un gran área vacía en el informe? Intenté hacer esto en el diseñador asignando un parámetro al ancho del cuerpo del informe ... pero eso no estaba permitido. El ancho no puede ser una expresión de ningún tipo en el diseñador, solo se permite un valor real.

¿Alguna sugerencia?

Respuesta

0

El ancho real del informe se ha solucionado en el diseñador, por lo que no se puede cambiar el tamaño del informe en tiempo de ejecución. Tiene razón en que en el diseñador de informes no hay forma de asignar una expresión o asignar dinámicamente un valor de ancho al informe, página o cuerpo.

Sin embargo, el ancho del CONTENEDOR para el informe rdlc se puede controlar en tiempo de ejecución. Si coloca el visor de informes dentro de un control de panel, debería poder lograr el resultado deseado. Desde la interfaz de usuario permite a los usuarios decidir qué columnas para incluir usted debe ser capaz de adjuntar un valor de anchura a cada columna opcional y resumir los y cambiar el tamaño del recipiente según el caso.

Recuerde que si cambia el tamaño del contenedor, un problema de espacio en blanco dentro del informe se convierte en un problema de espacio en blanco en el formulario. Aún así, un marco ajustado alrededor del informe con espacio vacío fuera de ese marco bien puede ser lo que desea.

HTH & Cheers,

CCA

+0

Puede ajustar el ancho de una columna cargando el rdlc en un objeto XmlDocument y ajustando el elemento "tamaño". Hago esto todo el tiempo para ocultar columnas en tiempo de ejecución. – clamchoda

1

tengo una solución que podría ser tonto, pero al menos funciona para mí; así que después de que haya terminado con el diseñador de informes rdlc, cerrarla y luego abrir el informe rdlc con el editor de XML, a continuación, dentro de la etiqueta <Report> justo después de la etiqueta <body>...</body> se puede ver una etiqueta <width>...</width> que contiene el ancho del informe, modificar su valor a un valor muy pequeño (digamos <width>1in</width>), esto debería hacer que el informe muestran sin los espacios tontas.

Pero recuerde que si abre el informe rdlc en el diseñador, restablecerá el ancho del área de visualización para que el problema vuelva a aparecer, por lo tanto, hágalo una vez que haya terminado el informe.

Sé que es una solución tonta, pero es mejor tonto en el lado del desarrollador que en el lado del cliente^_ ^.

Espero que esto ayude.

1

Si es posible se puede aumentar el ancho de otra columna para llenar el espacio vacío. He resuelto este problema de la siguiente manera.

Por ejemplo, he 'Nombre' columnas y 'descuento'. El descuento puede ocultarse y debería cambiar Name.Width to Name.Width + Discount.Width.

He creado una nueva columna (llámala 'NameExt') directamente desde la columna 'Name' con el mismo ancho que Discount.Width. Células combinadas de la columna 'Nombre' y la columna 'NombreExt'. Luego, establezca la regla de visibilidad para 'Descuento' y la regla de visibilidad inversa para 'NameExt'.

Espero que esto te pueda ayudar.

Cuestiones relacionadas