Estructura de un informe en JasperReports
Upcoming SlideShare
Loading in...5
×
 

Estructura de un informe en JasperReports

on

  • 2,664 views

Pasamos a describir a continuación los elementos importantes que debemos manejar para conocer la estructura de un informe en JasperReports.

Pasamos a describir a continuación los elementos importantes que debemos manejar para conocer la estructura de un informe en JasperReports.

Statistics

Views

Total Views
2,664
Views on SlideShare
2,664
Embed Views
0

Actions

Likes
0
Downloads
31
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Estructura de un informe en JasperReports Estructura de un informe en JasperReports Presentation Transcript

  • 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