studio soft reports last jaspersoft jasper descargar jasper-reports

jasper-reports - reports - jaspersoft



Evite repetir el encabezado de columna en JRXML (9)

¿Cómo puedo evitar que el nombre de la columna se repita en JRXML? ¿Hay algún atributo para evitar tener el encabezado de columna en cada página al generar un informe con JRXML y Jasper?


¿Hay algún atributo para evitar tener el encabezado de columna en cada página al generar un informe con JRXML y Jasper?

Puede usar la propiedad isPrintInFirstWholeBand y mover el encabezado de las columnas a la banda de Group Header grupo (o banda de Title si no tiene grupo).


Cree un grupo ficticio y use la Banda grupal de pie de página ... Eso me sirvió de mucho ya que la banda de resumen ya estaba en uso.


En la etiqueta de informe jasper poner
isIgnorePagination="true"


Establezca el siguiente parámetro en su código java si usa java para completar el informe:

parameters.put(JRParameter.IS_IGNORE_PAGINATION, Boolean.TRUE);


Lo intenté:

params.put(JRParameter.IS_IGNORE_PAGINATION, Boolean.TRUE);

Pero tengo una página larga 1/1, que no es fácil de imprimir sin dividir una fila en la mitad.

En su lugar, elegí el segundo enfoque del diseñador de iReport:

1-crear nuevas celdas vacías en el encabezado de la tabla.

2-Mueva las celdas (Celdas de encabezado) del encabezado de columna al encabezado de tabla, arrastrando una por una.

3-Eliminar las celdas vacías en el encabezado de columna.

4-Diseñe el nuevo fondo de celdas seleccionándolas eligiendo Backcolor de las propiedades, o seleccionando la columna (tabla) para definir el estilo, elija la table 1_CH de las propiedades.



Si el encabezado siempre estará en una página específica (por ejemplo, la primera página), puede agregar

<printWhenExpression><![CDATA[$V{PAGE_NUMBER}==1]]></printWhenExpression>

a la banda, que lo hará imprimir solo en la página 1. PAGE_NUMBER es una variable incorporada que se incrementa automáticamente a medida que se genera el informe.


Simplemente evitaría usar el encabezado de la columna siempre que pueda. Por alguna razón, los encabezados de grupo ofrecen a los usuarios muchas más opciones y flexibilidad. Entonces, aunque no use grupos en mi informe, creo un "grupo constante" que usa una expresión constante como expresión de groupExpression y luego uso el encabezado de este grupo como el encabezado de la columna del informe.

Con una expresión constante como true el grupo nunca cambia porque es independiente del conjunto de datos. Y como nunca lo cambia, no solo no se imprimirá dos veces automáticamente, también brindará la opción de volver a imprimir en cada página (entre otras opciones) simplemente marcando la casilla de verificación en JasperSoft studio (o agregando el atributo correspondiente a la etiqueta de grupo).

Las ventajas de desactivar la paginación o usar una página dependiente de printWhenExpression son:

  • independiente del número de página en el que aparece el encabezado por primera vez (una página de título o contenido dinámico podría llevar la primera aparición a la segunda o tercera página)
  • permite la paginación (agradable para exportar como PDF con encabezados / pies de página)
  • ofrece más opciones que el encabezado de columna estándar

Desventajas

  • añade complejidad al informe

Aquí hay un ejemplo para una definición de encabezado de grupo constante que no se repite en JRXML:

<group name="columnHeaderGroup" isReprintHeaderOnEachPage="false"> <groupExpression><![CDATA["a constant"]]></groupExpression> <groupHeader> <band height="20"> <!-- any column header content like Static Texts or Text Fields --> </band> </groupHeader> </group>

Tenga en cuenta que también podría simplemente eliminar isReprintHeaderOnEachPage="false" ya que este es el comportamiento predeterminado.


Una opción más fácil es elegir el "Encabezado de tabla" que se usará para el encabezado en lugar del "Encabezado de columna".

También me enfrenté al mismo problema y esa solución me funcionó.