SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler 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

Mais conteúdo relacionado

Mais procurados

PySpark Best Practices
PySpark Best PracticesPySpark Best Practices
PySpark Best PracticesCloudera, Inc.
 
Getting Started with Confluent Schema Registry
Getting Started with Confluent Schema RegistryGetting Started with Confluent Schema Registry
Getting Started with Confluent Schema Registryconfluent
 
23 prolog con base de datos mysql paso a paso
23 prolog con  base de datos mysql   paso a paso23 prolog con  base de datos mysql   paso a paso
23 prolog con base de datos mysql paso a paso.. ..
 
Hive Training -- Motivations and Real World Use Cases
Hive Training -- Motivations and Real World Use CasesHive Training -- Motivations and Real World Use Cases
Hive Training -- Motivations and Real World Use Casesnzhang
 
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDDREPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDDSandra Campos
 
Introduction to Stream Processing
Introduction to Stream ProcessingIntroduction to Stream Processing
Introduction to Stream ProcessingGuido Schmutz
 
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
 
Introduction to PySpark
Introduction to PySparkIntroduction to PySpark
Introduction to PySparkRussell Jurney
 
Real-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFiReal-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFiManish Gupta
 
Introduction to Stream Processing
Introduction to Stream ProcessingIntroduction to Stream Processing
Introduction to Stream ProcessingGuido Schmutz
 
Kafka Streams State Stores Being Persistent
Kafka Streams State Stores Being PersistentKafka Streams State Stores Being Persistent
Kafka Streams State Stores Being Persistentconfluent
 
HBase.pptx
HBase.pptxHBase.pptx
HBase.pptxSadhik7
 
Gelly-Stream: Single-Pass Graph Streaming Analytics with Apache Flink
Gelly-Stream: Single-Pass Graph Streaming Analytics with Apache FlinkGelly-Stream: Single-Pass Graph Streaming Analytics with Apache Flink
Gelly-Stream: Single-Pass Graph Streaming Analytics with Apache FlinkVasia Kalavri
 
IDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosIDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosFranklin Parrales Bravo
 
Introduction to Apache Flink - Fast and reliable big data processing
Introduction to Apache Flink - Fast and reliable big data processingIntroduction to Apache Flink - Fast and reliable big data processing
Introduction to Apache Flink - Fast and reliable big data processingTill Rohrmann
 
Stream processing using Kafka
Stream processing using KafkaStream processing using Kafka
Stream processing using KafkaKnoldus Inc.
 

Mais procurados (20)

PySpark Best Practices
PySpark Best PracticesPySpark Best Practices
PySpark Best Practices
 
Metodologias para el desarrollo de aplicaciones web
Metodologias para el desarrollo de aplicaciones webMetodologias para el desarrollo de aplicaciones web
Metodologias para el desarrollo de aplicaciones web
 
Getting Started with Confluent Schema Registry
Getting Started with Confluent Schema RegistryGetting Started with Confluent Schema Registry
Getting Started with Confluent Schema Registry
 
23 prolog con base de datos mysql paso a paso
23 prolog con  base de datos mysql   paso a paso23 prolog con  base de datos mysql   paso a paso
23 prolog con base de datos mysql paso a paso
 
Hive Training -- Motivations and Real World Use Cases
Hive Training -- Motivations and Real World Use CasesHive Training -- Motivations and Real World Use Cases
Hive Training -- Motivations and Real World Use Cases
 
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDDREPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
 
Introduction to Stream Processing
Introduction to Stream ProcessingIntroduction to Stream Processing
Introduction to Stream Processing
 
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
 
Introduction to PySpark
Introduction to PySparkIntroduction to PySpark
Introduction to PySpark
 
Real-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFiReal-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFi
 
Introduction to Stream Processing
Introduction to Stream ProcessingIntroduction to Stream Processing
Introduction to Stream Processing
 
Arquitectura fisica y logica
Arquitectura fisica y logicaArquitectura fisica y logica
Arquitectura fisica y logica
 
Hadoop and Spark
Hadoop and SparkHadoop and Spark
Hadoop and Spark
 
PHP
PHPPHP
PHP
 
Kafka Streams State Stores Being Persistent
Kafka Streams State Stores Being PersistentKafka Streams State Stores Being Persistent
Kafka Streams State Stores Being Persistent
 
HBase.pptx
HBase.pptxHBase.pptx
HBase.pptx
 
Gelly-Stream: Single-Pass Graph Streaming Analytics with Apache Flink
Gelly-Stream: Single-Pass Graph Streaming Analytics with Apache FlinkGelly-Stream: Single-Pass Graph Streaming Analytics with Apache Flink
Gelly-Stream: Single-Pass Graph Streaming Analytics with Apache Flink
 
IDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosIDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitos
 
Introduction to Apache Flink - Fast and reliable big data processing
Introduction to Apache Flink - Fast and reliable big data processingIntroduction to Apache Flink - Fast and reliable big data processing
Introduction to Apache Flink - Fast and reliable big data processing
 
Stream processing using Kafka
Stream processing using KafkaStream processing using Kafka
Stream processing using Kafka
 

Destaque

⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireportJosé Pedro Avila
 
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
 

Destaque (12)

Jasperreports
JasperreportsJasperreports
Jasperreports
 
Reporte Java con JasperReport
Reporte Java con JasperReportReporte Java con JasperReport
Reporte Java con JasperReport
 
⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport
 
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
 

Semelhante a 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
 

Semelhante a 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
 

Mais de Ematiz Tecnología, S.L.

Mais de 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