Me gustaría mostrar/ocultar una columna en tiempo de ejecución en función de una condición en particular. Estoy usando "Imprimir cuando expresión" para mostrar/ocultar condicionalmente esta columna (y su encabezado) en mi informe. Cuando la columna está oculta, el espacio que habría ocupado se deja en blanco, lo que no es particularmente atractivo.¿Cómo mostrar/ocultar una columna en tiempo de ejecución?
yo preferiría si se ha utilizado el espacio extra de una manera más eficaz, las posibilidades incluyen:
- la anchura del informe se reduce por la anchura de la columna oculta
- el espacio adicional se distribuye entre las columnas restantes
En teoría, podría lograr la primera al establecer el ancho de la columna (y el encabezado) en 0, pero también indicar que la columna debe cambiar de tamaño para ajustar su contenido. Pero JasperReports no proporciona una opción de "cambiar el tamaño para ajustar el contenido".
Otra posibilidad es generar informes utilizando la API de Jasper en lugar de definir la plantilla de informe en XML. Pero eso parece un gran esfuerzo para un requisito tan simple.
La primera solución no funcionará realmente porque hay más de una columna y hay un color de fondo en el encabezado del informe, por lo que todavía se verá extraño si faltan columnas. La segunda solución implica duplicar el informe, que es el tema que estoy tratando de evitar :) ¡Gracias de todos modos! –