SlideShare a Scribd company logo
1 of 31
Download to read offline
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

More Related Content

What's hot

Introduction to JSX
Introduction to JSXIntroduction to JSX
Introduction to JSXMicah Wood
 
Clean architectures with fast api pycones
Clean architectures with fast api   pyconesClean architectures with fast api   pycones
Clean architectures with fast api pyconesAlvaro Del Castillo
 
Ejemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper reportEjemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper reportjbersosa
 
RESTful API In Node Js using Express
RESTful API In Node Js using Express RESTful API In Node Js using Express
RESTful API In Node Js using Express Jeetendra singh
 
JavaScript - Chapter 11 - Events
 JavaScript - Chapter 11 - Events  JavaScript - Chapter 11 - Events
JavaScript - Chapter 11 - Events WebStackAcademy
 
Introducción a ORMs
Introducción a ORMsIntroducción a ORMs
Introducción a ORMsmaxfontana90
 
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
 JavaScript - Chapter 9 - TypeConversion and Regular Expressions  JavaScript - Chapter 9 - TypeConversion and Regular Expressions
JavaScript - Chapter 9 - TypeConversion and Regular Expressions WebStackAcademy
 
What's New in Capture Overview - Release 16 EP4
What's New in Capture Overview - Release 16 EP4What's New in Capture Overview - Release 16 EP4
What's New in Capture Overview - Release 16 EP4OpenText
 
Introduction of ssis
Introduction of ssisIntroduction of ssis
Introduction of ssisdeepakk073
 
Introduction to web programming with JavaScript
Introduction to web programming with JavaScriptIntroduction to web programming with JavaScript
Introduction to web programming with JavaScriptT11 Sessions
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 
Architecture of integration services
Architecture of integration servicesArchitecture of integration services
Architecture of integration servicesSlava Kokaev
 

What's hot (20)

Spring boot jpa
Spring boot jpaSpring boot jpa
Spring boot jpa
 
Introduction to JSX
Introduction to JSXIntroduction to JSX
Introduction to JSX
 
Clean architectures with fast api pycones
Clean architectures with fast api   pyconesClean architectures with fast api   pycones
Clean architectures with fast api pycones
 
Ejemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper reportEjemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper report
 
RESTful API In Node Js using Express
RESTful API In Node Js using Express RESTful API In Node Js using Express
RESTful API In Node Js using Express
 
JavaScript - Chapter 11 - Events
 JavaScript - Chapter 11 - Events  JavaScript - Chapter 11 - Events
JavaScript - Chapter 11 - Events
 
Introducción a ORMs
Introducción a ORMsIntroducción a ORMs
Introducción a ORMs
 
Reporte Java con JasperReport
Reporte Java con JasperReportReporte Java con JasperReport
Reporte Java con JasperReport
 
JPA and Hibernate
JPA and HibernateJPA and Hibernate
JPA and Hibernate
 
Patron fachada...
Patron fachada...Patron fachada...
Patron fachada...
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
 
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
 JavaScript - Chapter 9 - TypeConversion and Regular Expressions  JavaScript - Chapter 9 - TypeConversion and Regular Expressions
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
 
What's New in Capture Overview - Release 16 EP4
What's New in Capture Overview - Release 16 EP4What's New in Capture Overview - Release 16 EP4
What's New in Capture Overview - Release 16 EP4
 
Javascript essentials
Javascript essentialsJavascript essentials
Javascript essentials
 
Introduction of ssis
Introduction of ssisIntroduction of ssis
Introduction of ssis
 
Introduction to web programming with JavaScript
Introduction to web programming with JavaScriptIntroduction to web programming with JavaScript
Introduction to web programming with JavaScript
 
Broadleaf Presents Thymeleaf
Broadleaf Presents ThymeleafBroadleaf Presents Thymeleaf
Broadleaf Presents Thymeleaf
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Architecture of integration services
Architecture of integration servicesArchitecture of integration services
Architecture of integration services
 
React js
React jsReact js
React js
 

Viewers also liked

Generación de informes usando Jasper Reports
Generación de informes usando Jasper ReportsGeneración de informes usando Jasper Reports
Generación de informes usando Jasper Reportsraimonesteve
 
JasperReports, informes con diseño
JasperReports, informes con diseñoJasperReports, informes con diseño
JasperReports, informes con diseñoraimonesteve
 
Plantilla autollenar formatos preimpresos - principales ventajas
Plantilla autollenar formatos preimpresos - principales ventajasPlantilla autollenar formatos preimpresos - principales ventajas
Plantilla autollenar formatos preimpresos - principales ventajasJFKSOFT CORP.
 
Estructura de informe
Estructura de informeEstructura de informe
Estructura de informeelicarolina29
 
Crear encabezados diferentes en cada página
Crear encabezados diferentes en cada páginaCrear encabezados diferentes en cada página
Crear encabezados diferentes en cada páginabloginformatica
 
Mineria de Datos
Mineria de DatosMineria de Datos
Mineria de Datos04071977
 

Viewers also liked (12)

Introducción a JasperReports
Introducción a JasperReportsIntroducción a JasperReports
Introducción a JasperReports
 
Jasperreports
JasperreportsJasperreports
Jasperreports
 
Generación de informes usando Jasper Reports
Generación de informes usando Jasper ReportsGeneración de informes usando Jasper Reports
Generación de informes usando Jasper Reports
 
JasperReports, informes con diseño
JasperReports, informes con diseñoJasperReports, informes con diseño
JasperReports, informes con diseño
 
Ireport
IreportIreport
Ireport
 
Unidad I el informe
Unidad I el informeUnidad I el informe
Unidad I el informe
 
MVC
MVCMVC
MVC
 
Plantilla autollenar formatos preimpresos - principales ventajas
Plantilla autollenar formatos preimpresos - principales ventajasPlantilla autollenar formatos preimpresos - principales ventajas
Plantilla autollenar formatos preimpresos - principales ventajas
 
Estructura de informe
Estructura de informeEstructura de informe
Estructura de informe
 
Crear encabezados diferentes en cada página
Crear encabezados diferentes en cada páginaCrear encabezados diferentes en cada página
Crear encabezados diferentes en cada página
 
Mineria de Datos
Mineria de DatosMineria de Datos
Mineria de Datos
 
Manual ireport
Manual ireportManual ireport
Manual ireport
 

Similar to Estructura de un informe en JasperReports

Novedades de aries
Novedades de ariesNovedades de aries
Novedades de arieslmrv
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Ronald Cuello
 
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Juan Manuel
 
UDA - Anexo generación de informes
UDA - Anexo generación de informesUDA - Anexo generación de informes
UDA - Anexo generación de informesAnder Martinez
 
Persistencia de objetos con Hibernate
Persistencia de objetos con HibernatePersistencia de objetos con Hibernate
Persistencia de objetos con HibernateMauro Gomez Mejia
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bdJulio Pari
 
XML - DTD - XML XSchema - XSLT / OpenERP.
XML - DTD - XML XSchema - XSLT / OpenERP.XML - DTD - XML XSchema - XSLT / OpenERP.
XML - DTD - XML XSchema - XSLT / OpenERP.Andrés Cevallos Prado
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magentoOnestic
 
Persistencia de un modelo de objetos
Persistencia de un modelo de objetosPersistencia de un modelo de objetos
Persistencia de un modelo de objetosJorge Ercoli
 
Manual de instrucciones Configuración del archivo sigesp_xml_configuracion.xm...
Manual de instrucciones Configuración del archivo sigesp_xml_configuracion.xm...Manual de instrucciones Configuración del archivo sigesp_xml_configuracion.xm...
Manual de instrucciones Configuración del archivo sigesp_xml_configuracion.xm...Alexis Cuevas
 
Manual reportes jsp
Manual reportes jspManual reportes jsp
Manual reportes jspjujuju12
 

Similar to Estructura de un informe en JasperReports (20)

Liferay 6.1 Service Builder
Liferay 6.1  Service BuilderLiferay 6.1  Service Builder
Liferay 6.1 Service Builder
 
Novedades de aries
Novedades de ariesNovedades de aries
Novedades de aries
 
Novedades de aries
Novedades de ariesNovedades de aries
Novedades de aries
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)
 
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
Parte II. Notas Rapidas (sticky notes) App W8: MVVM y SQLite.
 
UDA - Anexo generación de informes
UDA - Anexo generación de informesUDA - Anexo generación de informes
UDA - Anexo generación de informes
 
Persistencia de objetos con Hibernate
Persistencia de objetos con HibernatePersistencia de objetos con Hibernate
Persistencia de objetos con Hibernate
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bd
 
Reportes
ReportesReportes
Reportes
 
Informes+con+ireport (2)
Informes+con+ireport (2)Informes+con+ireport (2)
Informes+con+ireport (2)
 
XML - DTD - XML XSchema - XSLT / OpenERP.
XML - DTD - XML XSchema - XSLT / OpenERP.XML - DTD - XML XSchema - XSLT / OpenERP.
XML - DTD - XML XSchema - XSLT / OpenERP.
 
2 preprocesado
2 preprocesado2 preprocesado
2 preprocesado
 
Android Superstar - Buenas Prácticas
Android Superstar - Buenas PrácticasAndroid Superstar - Buenas Prácticas
Android Superstar - Buenas Prácticas
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
 
Persistencia de un modelo de objetos
Persistencia de un modelo de objetosPersistencia de un modelo de objetos
Persistencia de un modelo de objetos
 
Manual de instrucciones Configuración del archivo sigesp_xml_configuracion.xm...
Manual de instrucciones Configuración del archivo sigesp_xml_configuracion.xm...Manual de instrucciones Configuración del archivo sigesp_xml_configuracion.xm...
Manual de instrucciones Configuración del archivo sigesp_xml_configuracion.xm...
 
Reports
ReportsReports
Reports
 
Xml
XmlXml
Xml
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Manual reportes jsp
Manual reportes jspManual reportes jsp
Manual reportes jsp
 

More from Ematiz Tecnología, S.L.

More from Ematiz Tecnología, S.L. (9)

Contenidos personalizados en alfresco ecm
Contenidos personalizados en alfresco ecmContenidos personalizados en alfresco ecm
Contenidos personalizados en alfresco ecm
 
El core de Alfresco 4.2
El core de Alfresco 4.2El core de Alfresco 4.2
El core de Alfresco 4.2
 
Perfiles en maven
Perfiles en mavenPerfiles en maven
Perfiles en maven
 
Filtrado de recursos en Maven
Filtrado de recursos en MavenFiltrado de recursos en Maven
Filtrado de recursos en Maven
 
Liferay 6 1, Internacionalización en nuestros desarrollos
Liferay 6 1, Internacionalización en nuestros desarrollosLiferay 6 1, Internacionalización en nuestros desarrollos
Liferay 6 1, Internacionalización en nuestros desarrollos
 
Liferay 6.1 Campos personalizados desde el panel de control
Liferay 6.1  Campos personalizados desde el panel de controlLiferay 6.1  Campos personalizados desde el panel de control
Liferay 6.1 Campos personalizados desde el panel de control
 
Liferay versión 6.1 Trabajando con LDAP, introducción
Liferay versión 6.1  Trabajando con LDAP, introducciónLiferay versión 6.1  Trabajando con LDAP, introducción
Liferay versión 6.1 Trabajando con LDAP, introducción
 
Liferay 6.1 Campos personalizados
Liferay 6.1 Campos personalizadosLiferay 6.1 Campos personalizados
Liferay 6.1 Campos personalizados
 
Trabajando con imagenes en liferay 6.1
Trabajando con imagenes en liferay 6.1Trabajando con imagenes en liferay 6.1
Trabajando con imagenes en liferay 6.1
 

Estructura de un informe en JasperReports

  • 1. Reporting con Jasper Reports e IReport Estructura de un informe
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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