Reporting con Jasper
Reports e IReport
Estructura de un informe
Estructura de un informe, JasperReports e IReport

Índice de contenidos
‣ Introducción.
‣ Codificación.
‣ Elemento band.
‣ No tener en cuenta una banda.
‣ Las secciones principales.
‣ Añadir o eliminar secciones con iReport.
‣ Agrupando datos.
‣ Agrupando datos con iReport.

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Introducción
‣ La plantilla de un informe contiene toda la información relacionada con

la estructura y el aspecto de los documentos que se generarán
posteriormente.

‣ Esta información determina la posición del contenido de los textos,

elementos gráficos, etc.

‣ La forma en la que se agrupan y manipulan los datos también es

definida en la plantilla.

‣ JRXML es el nombre usado para identificar a los ficheros XML que

representan la definición de una plantilla JasperReports

‣ Cuando se trabaja con plantillas JRXML, JasperReports usa su fichero

DTD para validar el contenido XML.

‣ Si el fichero XML pasa las validaciones, significa que cumple la

estructura y sintáxis correcta. El motor será capaz de generar la
versión compilada del informe.

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Introducción
‣ DTD que debemos utilizar:

<!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD
JasperReport //EN" "http://jasperreports.sourceforge.net/dtds/
jasperreport.dtd">
<?xml version="1.0"?> <!DOCTYPE jasperReport PUBLIC "-//
JasperReports//DTD JasperReport //EN" "http://
jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="name_of_the_report" ... >
...
</jasperReport>

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Introducción
‣ También podemos utilizar esquema XML:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/
jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xsi:schemaLocation="http://
jasperreports.sourceforge.net/jasperreports http://
jasperreports.sourceforge.net/xsd/jasperreport.xsd"
name="Java5Report" pageWidth="595" pageHeight="842"
columnWidth="515" leftMargin="40" rightMargin="40"
topMargin="50" bottomMargin="50" uuid="62ca22c3-c77f-4b17a8fc-4880078f1205">
!
<property name="ireport.zoom" value="1.0"/>
!
<property name="ireport.x" value="0"/>
!
<property name="ireport.y" value="96"/>

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Codificación
‣ Cuando se crean plantillas en diferentes idiomas, debemos tener

cuidado con el atributo encoding que puede ser usado en el fichero
XML.

‣ Por defecto, si no se especifica ningún valor, el parser XML utiliza

UTF-8 como codificación.

‣ Esto es importante porque el diseño habitualmente contiene textos

estático.

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Codificación
‣ Ejemplo:
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE
jasperReport PUBLIC "-//JasperReports//DTD JasperReport //EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="name_of_the_report" ... >

...

</jasperReport>

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Elemento band
‣ Cuando se declara el contenido y layout de una sección, se usa el

elemento genérico band.

‣ Como ya hemos visto anteriormente:
...
<background>
!
<band splitType="Stretch"/>
</background>
...

‣ Todas las secciones incorporan un elemento de tipo band para añadir

contentidos en el informe.

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Elemento band
‣ Tiene dos atributos:
‣

height: altura de la sección.

‣

splitType: forma en la que se gestiona la posible división en varias páginas.
‣

Stretch: si el contenido no cabe en una página, ocupa la siguiente.

‣

Prevent: contenidos en una página.

‣

Immediante.

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Elemento band
‣ Sus elementos hijos se definen aquí:
<!ELEMENT band (printWhenExpression?, (break | line |
rectangle | ellipse | image | staticText | textField |
subreport | pieChart | pie3DChart | barChart | bar3DChart |
xyBarChart | stackedBarChart | stackedBar3DChart| lineChart |
xyLineChart | areaChart | xyAreaChart | scatterChart |
bubbleChart
| timeSeriesChart | highLowChart | candlestickChart |
meterChart | thermometerChart | multiAxisChart |
stackedAreaChart | elementGroup | crosstab | frame)*)>

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Elemento band
‣ El atributo height en la declaración de una banda especifica su altura

en pixeles.

‣ Los elementos contenidos en una banda siempre tendrán que encajar

en sus dimensiones. Esto previene potenciales resultados erroneos
cuando se genera un informe.

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

No tener en cuenta una banda
‣ JasperReport nos permite definir condiciones para no tener en cuenta

una banda en determinadas circunstancias.

‣ Esa condición se introduce mediante la etiqueta

<printWhenExpression>, disponible en cualquier banda de un informe.

‣ Siempre devuelve java.lang.Boolean object o null.
...
<background>
<band splitType="Stretch">
!
<printWhenExpression>
<![CDATA[$F{screenName}==0]]>
</printWhenExpression>
</band>
</background>
...

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Las secciones principales
‣ JasperReports trabaja con plantilla que se estructura en diferentes

secciones.

‣ Las secciones son trozos de la plantilla que han sido especificadas

con una altura y una anchura y pueden contener elementos como
líneas, imágenes, etc.

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Título
‣ Ésta es la primera sección de un informe. Se genera sólo una vez

durante el proceso de rellenado de datos y representa el inicio del
documento.

‣ Esta sección precede a la sección de cabecera de la página. Para

generar la sección de cabecera antes que la de título debe incluirse
dentro de la de título.

‣ El elemento xml title nos permite definir este concepto:
<title>
!
<band height="132" splitType="Stretch">

!
</band>
</title>

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Cabecera de página
‣ El elemento xml pageHeader nos permite definir este concepto.
‣ Esta sección aparece al principio de cada página en el documento

generado.

...
<pageHeader>
!
<band splitType="Stretch"/>
</pageHeader>
...

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Cabecera de columna
‣ El elemento xml columnHeader nos permite definir este concepto.
‣ Esta sección aparece al principio de cada página en el documento

generado.

...
<columnHeader>
!
<band height="26" splitType="Stretch">
!
!
<staticText>

</band>
</columnHeader>
...

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Detalle
‣ El motor intenta generar para cada elemento asociado a la fuente de

datos esta sección.

‣ El elemento xml detail nos permite definir este concepto:
...
<detail>
<band height="18" splitType="Stretch">
</band>
</detail>
...

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Pie de columna
‣ Esta sección aparece al final de cada columna en el documento

generado.

‣ El elemento xml columnFooter nos permite definir este concepto:
...
<columnFooter>
<band height="7" splitType="Stretch">
!
...
</band>
</columnFooter>
...

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Pie de página
‣ Esta sección aparece al final de cada página en el documento

generado.

‣ El elemento xml pageFooter nos permite definir este concepto:
...
<pageFooter>
<band height="7" splitType="Stretch">
!
...
</band>
</pageFooter>
...

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Resumen
‣ Esta sección se genera una sola vez y aparece al final del documento

generado.

‣ Pero no tienen que ser necesariamente la última sección. En

determinadas ocasiones, el pie de columna y/o de página puede
generarse posteriormente.

‣ El resumen puede generarse en una página independiente si el atributo

isSummaryNewPage está a true.

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Pie de página para la última página
‣ Esta sección aparece al final de la última página en el documento

generado.

‣ El elemento xml lastPageFooter nos permite definir este concepto:
...
<lastPageFooter>
<band height="7" splitType="Stretch">
!
...
</band>
</lastPageFooter>
...

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Background de la plantilla
‣ Esta es una sección especial que se genera para todas las páginas y el

contenido dentro de esta sección se renderiza por debajo de los
elementos en las secciones normales.

‣ El elemento background se encarga de modelar este concepto.
...
<background>
!
<band splitType="Stretch"/>
</background>
...

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Añadir o eliminar secciones con iReport
‣ La herramienta iReport nos permite añadir o eliminar secciones dentro

de nuestra plantilla de una forma rápida y sencilla:

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Agrupando datos
‣ Los grupos representan una forma flexible de organizar los datos

dentro un informe. Un grupo no es más que un conjunto de registros
consecutivos que tienen algo en común, por ejemplo, el valor de un
determinado campo.

‣ Un grupo está formado por tres componentes:
‣

Expresión de grupo.

‣

Sección de cabecera de grupo.

‣

Sección de pie de grupo.

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Agrupando datos
‣ El valor de la expresión de grupo es lo que hace que los registros de un

grupo se mantengan juntos. Ese es el valor que tienen en común.

‣ Cuando el valor de la expresión de grupo cambia durante la iteración

sobre la fuente de datos, se produce una ruptura en el grupo,
añadiendo las secciones <groupFooter> y <groupHeader>
correspondientes al documento final.

‣ Se pueden definir tanto grupos como se desee en un informe, ahora

bien, el orden en el que aparecen es importante dado que unos
contienen a otros. Uno grupo contiene al siguiente. Cuando el grupo
más grande encuentra una ruptura, todos los demás son inicializados.

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Agrupando datos
‣ IMPORTANTE:
‣

La agrupación de datos funciona como esperamos solo si los registros se
encuentran ordenados de acuerdo con las expresiones de grupo definidas en el
informe.

‣

Por ejemplo, si quieres agrupar productos a partir del pais y ciudad de procedencia,
el motor espera encontrar los registros ordenados por pais y por ciudad.

‣

Si no están ordenados, los registros no se agruparán adecuadamente,
JasperReports no ordena los registros antes de usarlos.

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Agrupando datos
‣ Sintaxis:
<!ELEMENT group (groupExpression?, groupHeader?, groupFooter?)>
<!ATTLIST group name CDATA #REQUIRED
isStartNewColumn (true | false) "false"
isStartNewPage (true | false) "false"
isResetPageNumber (true | false) "false"
isReprintHeaderOnEachPage (true | false) "false"
minHeightToStartNewPage NMTOKEN "0"
>
<!ELEMENT groupExpression (#PCDATA)>
<!ELEMENT groupHeader (band?)>
<!ELEMENT groupFooter (band?)>

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Agrupando datos
‣ La creación de un grupo dentro de un informe permite al usuario, crear

secciones de cabecera y pie para dicho grupo:

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Agrupando datos con iReport
‣ El procedimiento es muy simple, seleccionando el informe y mediante

el botón derecho acceder a la opción Add Report Group:

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Agrupando datos con iReport
‣ Una vez hecho esto, accedemos a un asistente que nos guía en el

procedimiento de creación:

Preparado por Jesús Salinas Revelles
Estructura de un informe, JasperReports e IReport

Agrupando datos con iReport
‣ Y finalmente se decide añadir o no nuevas secciones para este grupo:

Preparado por Jesús Salinas Revelles

Estructura de un informe en JasperReports

  • 1.
    Reporting con Jasper Reportse IReport Estructura de un informe
  • 2.
    Estructura de uninforme, JasperReports e IReport Índice de contenidos ‣ Introducción. ‣ Codificación. ‣ Elemento band. ‣ No tener en cuenta una banda. ‣ Las secciones principales. ‣ Añadir o eliminar secciones con iReport. ‣ Agrupando datos. ‣ Agrupando datos con iReport. Preparado por Jesús Salinas Revelles
  • 3.
    Estructura de uninforme, JasperReports e IReport Introducción ‣ La plantilla de un informe contiene toda la información relacionada con la estructura y el aspecto de los documentos que se generarán posteriormente. ‣ Esta información determina la posición del contenido de los textos, elementos gráficos, etc. ‣ La forma en la que se agrupan y manipulan los datos también es definida en la plantilla. ‣ JRXML es el nombre usado para identificar a los ficheros XML que representan la definición de una plantilla JasperReports ‣ Cuando se trabaja con plantillas JRXML, JasperReports usa su fichero DTD para validar el contenido XML. ‣ Si el fichero XML pasa las validaciones, significa que cumple la estructura y sintáxis correcta. El motor será capaz de generar la versión compilada del informe. Preparado por Jesús Salinas Revelles
  • 4.
    Estructura de uninforme, JasperReports e IReport Introducción ‣ DTD que debemos utilizar: <!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD JasperReport //EN" "http://jasperreports.sourceforge.net/dtds/ jasperreport.dtd"> <?xml version="1.0"?> <!DOCTYPE jasperReport PUBLIC "-// JasperReports//DTD JasperReport //EN" "http:// jasperreports.sourceforge.net/dtds/jasperreport.dtd"> <jasperReport name="name_of_the_report" ... > ... </jasperReport> Preparado por Jesús Salinas Revelles
  • 5.
    Estructura de uninforme, JasperReports e IReport Introducción ‣ También podemos utilizar esquema XML: <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/ jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xsi:schemaLocation="http:// jasperreports.sourceforge.net/jasperreports http:// jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Java5Report" pageWidth="595" pageHeight="842" columnWidth="515" leftMargin="40" rightMargin="40" topMargin="50" bottomMargin="50" uuid="62ca22c3-c77f-4b17a8fc-4880078f1205"> ! <property name="ireport.zoom" value="1.0"/> ! <property name="ireport.x" value="0"/> ! <property name="ireport.y" value="96"/> Preparado por Jesús Salinas Revelles
  • 6.
    Estructura de uninforme, JasperReports e IReport Codificación ‣ Cuando se crean plantillas en diferentes idiomas, debemos tener cuidado con el atributo encoding que puede ser usado en el fichero XML. ‣ Por defecto, si no se especifica ningún valor, el parser XML utiliza UTF-8 como codificación. ‣ Esto es importante porque el diseño habitualmente contiene textos estático. Preparado por Jesús Salinas Revelles
  • 7.
    Estructura de uninforme, JasperReports e IReport Codificación ‣ Ejemplo: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD JasperReport //EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd"> <jasperReport name="name_of_the_report" ... > ... </jasperReport> Preparado por Jesús Salinas Revelles
  • 8.
    Estructura de uninforme, JasperReports e IReport Elemento band ‣ Cuando se declara el contenido y layout de una sección, se usa el elemento genérico band. ‣ Como ya hemos visto anteriormente: ... <background> ! <band splitType="Stretch"/> </background> ... ‣ Todas las secciones incorporan un elemento de tipo band para añadir contentidos en el informe. Preparado por Jesús Salinas Revelles
  • 9.
    Estructura de uninforme, JasperReports e IReport Elemento band ‣ Tiene dos atributos: ‣ height: altura de la sección. ‣ splitType: forma en la que se gestiona la posible división en varias páginas. ‣ Stretch: si el contenido no cabe en una página, ocupa la siguiente. ‣ Prevent: contenidos en una página. ‣ Immediante. Preparado por Jesús Salinas Revelles
  • 10.
    Estructura de uninforme, JasperReports e IReport Elemento band ‣ Sus elementos hijos se definen aquí: <!ELEMENT band (printWhenExpression?, (break | line | rectangle | ellipse | image | staticText | textField | subreport | pieChart | pie3DChart | barChart | bar3DChart | xyBarChart | stackedBarChart | stackedBar3DChart| lineChart | xyLineChart | areaChart | xyAreaChart | scatterChart | bubbleChart | timeSeriesChart | highLowChart | candlestickChart | meterChart | thermometerChart | multiAxisChart | stackedAreaChart | elementGroup | crosstab | frame)*)> Preparado por Jesús Salinas Revelles
  • 11.
    Estructura de uninforme, JasperReports e IReport Elemento band ‣ El atributo height en la declaración de una banda especifica su altura en pixeles. ‣ Los elementos contenidos en una banda siempre tendrán que encajar en sus dimensiones. Esto previene potenciales resultados erroneos cuando se genera un informe. Preparado por Jesús Salinas Revelles
  • 12.
    Estructura de uninforme, JasperReports e IReport No tener en cuenta una banda ‣ JasperReport nos permite definir condiciones para no tener en cuenta una banda en determinadas circunstancias. ‣ Esa condición se introduce mediante la etiqueta <printWhenExpression>, disponible en cualquier banda de un informe. ‣ Siempre devuelve java.lang.Boolean object o null. ... <background> <band splitType="Stretch"> ! <printWhenExpression> <![CDATA[$F{screenName}==0]]> </printWhenExpression> </band> </background> ... Preparado por Jesús Salinas Revelles
  • 13.
    Estructura de uninforme, JasperReports e IReport Las secciones principales ‣ JasperReports trabaja con plantilla que se estructura en diferentes secciones. ‣ Las secciones son trozos de la plantilla que han sido especificadas con una altura y una anchura y pueden contener elementos como líneas, imágenes, etc. Preparado por Jesús Salinas Revelles
  • 14.
    Estructura de uninforme, JasperReports e IReport Título ‣ Ésta es la primera sección de un informe. Se genera sólo una vez durante el proceso de rellenado de datos y representa el inicio del documento. ‣ Esta sección precede a la sección de cabecera de la página. Para generar la sección de cabecera antes que la de título debe incluirse dentro de la de título. ‣ El elemento xml title nos permite definir este concepto: <title> ! <band height="132" splitType="Stretch"> ! </band> </title> Preparado por Jesús Salinas Revelles
  • 15.
    Estructura de uninforme, JasperReports e IReport Cabecera de página ‣ El elemento xml pageHeader nos permite definir este concepto. ‣ Esta sección aparece al principio de cada página en el documento generado. ... <pageHeader> ! <band splitType="Stretch"/> </pageHeader> ... Preparado por Jesús Salinas Revelles
  • 16.
    Estructura de uninforme, JasperReports e IReport Cabecera de columna ‣ El elemento xml columnHeader nos permite definir este concepto. ‣ Esta sección aparece al principio de cada página en el documento generado. ... <columnHeader> ! <band height="26" splitType="Stretch"> ! ! <staticText> </band> </columnHeader> ... Preparado por Jesús Salinas Revelles
  • 17.
    Estructura de uninforme, JasperReports e IReport Detalle ‣ El motor intenta generar para cada elemento asociado a la fuente de datos esta sección. ‣ El elemento xml detail nos permite definir este concepto: ... <detail> <band height="18" splitType="Stretch"> </band> </detail> ... Preparado por Jesús Salinas Revelles
  • 18.
    Estructura de uninforme, JasperReports e IReport Pie de columna ‣ Esta sección aparece al final de cada columna en el documento generado. ‣ El elemento xml columnFooter nos permite definir este concepto: ... <columnFooter> <band height="7" splitType="Stretch"> ! ... </band> </columnFooter> ... Preparado por Jesús Salinas Revelles
  • 19.
    Estructura de uninforme, JasperReports e IReport Pie de página ‣ Esta sección aparece al final de cada página en el documento generado. ‣ El elemento xml pageFooter nos permite definir este concepto: ... <pageFooter> <band height="7" splitType="Stretch"> ! ... </band> </pageFooter> ... Preparado por Jesús Salinas Revelles
  • 20.
    Estructura de uninforme, JasperReports e IReport Resumen ‣ Esta sección se genera una sola vez y aparece al final del documento generado. ‣ Pero no tienen que ser necesariamente la última sección. En determinadas ocasiones, el pie de columna y/o de página puede generarse posteriormente. ‣ El resumen puede generarse en una página independiente si el atributo isSummaryNewPage está a true. Preparado por Jesús Salinas Revelles
  • 21.
    Estructura de uninforme, JasperReports e IReport Pie de página para la última página ‣ Esta sección aparece al final de la última página en el documento generado. ‣ El elemento xml lastPageFooter nos permite definir este concepto: ... <lastPageFooter> <band height="7" splitType="Stretch"> ! ... </band> </lastPageFooter> ... Preparado por Jesús Salinas Revelles
  • 22.
    Estructura de uninforme, JasperReports e IReport Background de la plantilla ‣ Esta es una sección especial que se genera para todas las páginas y el contenido dentro de esta sección se renderiza por debajo de los elementos en las secciones normales. ‣ El elemento background se encarga de modelar este concepto. ... <background> ! <band splitType="Stretch"/> </background> ... Preparado por Jesús Salinas Revelles
  • 23.
    Estructura de uninforme, JasperReports e IReport Añadir o eliminar secciones con iReport ‣ La herramienta iReport nos permite añadir o eliminar secciones dentro de nuestra plantilla de una forma rápida y sencilla: Preparado por Jesús Salinas Revelles
  • 24.
    Estructura de uninforme, JasperReports e IReport Agrupando datos ‣ Los grupos representan una forma flexible de organizar los datos dentro un informe. Un grupo no es más que un conjunto de registros consecutivos que tienen algo en común, por ejemplo, el valor de un determinado campo. ‣ Un grupo está formado por tres componentes: ‣ Expresión de grupo. ‣ Sección de cabecera de grupo. ‣ Sección de pie de grupo. Preparado por Jesús Salinas Revelles
  • 25.
    Estructura de uninforme, JasperReports e IReport Agrupando datos ‣ El valor de la expresión de grupo es lo que hace que los registros de un grupo se mantengan juntos. Ese es el valor que tienen en común. ‣ Cuando el valor de la expresión de grupo cambia durante la iteración sobre la fuente de datos, se produce una ruptura en el grupo, añadiendo las secciones <groupFooter> y <groupHeader> correspondientes al documento final. ‣ Se pueden definir tanto grupos como se desee en un informe, ahora bien, el orden en el que aparecen es importante dado que unos contienen a otros. Uno grupo contiene al siguiente. Cuando el grupo más grande encuentra una ruptura, todos los demás son inicializados. Preparado por Jesús Salinas Revelles
  • 26.
    Estructura de uninforme, JasperReports e IReport Agrupando datos ‣ IMPORTANTE: ‣ La agrupación de datos funciona como esperamos solo si los registros se encuentran ordenados de acuerdo con las expresiones de grupo definidas en el informe. ‣ Por ejemplo, si quieres agrupar productos a partir del pais y ciudad de procedencia, el motor espera encontrar los registros ordenados por pais y por ciudad. ‣ Si no están ordenados, los registros no se agruparán adecuadamente, JasperReports no ordena los registros antes de usarlos. Preparado por Jesús Salinas Revelles
  • 27.
    Estructura de uninforme, JasperReports e IReport Agrupando datos ‣ Sintaxis: <!ELEMENT group (groupExpression?, groupHeader?, groupFooter?)> <!ATTLIST group name CDATA #REQUIRED isStartNewColumn (true | false) "false" isStartNewPage (true | false) "false" isResetPageNumber (true | false) "false" isReprintHeaderOnEachPage (true | false) "false" minHeightToStartNewPage NMTOKEN "0" > <!ELEMENT groupExpression (#PCDATA)> <!ELEMENT groupHeader (band?)> <!ELEMENT groupFooter (band?)> Preparado por Jesús Salinas Revelles
  • 28.
    Estructura de uninforme, JasperReports e IReport Agrupando datos ‣ La creación de un grupo dentro de un informe permite al usuario, crear secciones de cabecera y pie para dicho grupo: Preparado por Jesús Salinas Revelles
  • 29.
    Estructura de uninforme, JasperReports e IReport Agrupando datos con iReport ‣ El procedimiento es muy simple, seleccionando el informe y mediante el botón derecho acceder a la opción Add Report Group: Preparado por Jesús Salinas Revelles
  • 30.
    Estructura de uninforme, JasperReports e IReport Agrupando datos con iReport ‣ Una vez hecho esto, accedemos a un asistente que nos guía en el procedimiento de creación: Preparado por Jesús Salinas Revelles
  • 31.
    Estructura de uninforme, JasperReports e IReport Agrupando datos con iReport ‣ Y finalmente se decide añadir o no nuevas secciones para este grupo: Preparado por Jesús Salinas Revelles