Reportes utilizando Jasper Report y el iReport

Introduccion

JasperReports es una herramienta de creación de reportes, escrito completamente en Java y de código abierto que tiene la habilidad de entregar contenido enriquecido a las salidas ya sea un monitor, impresora o a distintos tipos de archivos como PDF, HTML, y XML entre otros.

Su propósito principal es ayudar a crear documentos de salida, preparados para imprimirse en una forma simple, dinámica y flexible.

JasperReports se basa, para la creación de reportes, en un archivo XML que puede que ser editado “a mano” con su correspondiente inconveniente, ya que se pueden generar muchos errores dada la sintaxis especifica del jrxml. Por ello se puede utilizar iReport, un front-end gráfico de código abierto para la edición de reportes.
Procedimientos
A continuación se explicará la manera de usar iReport en su versión 3.7.6 :
1.- Crear la conexión a la base de datos o inicializar la fuente de datos.
2.- Crear un reporte.
3.- Presionar el botón de Preview para visualizar el reporte compilado, y con los datos proporcionados en el paso 1.
De manera especifica en este tutorial crearemos un reporte generado a partir de un archivo XML:
<?xml version="1.0" encoding="UTF-8"?>
<portfolio>
<stock>
<symbol>SUNW</symbol>
<name> Sun Microsystems </name>
<price>17.1</price>
</stock>
<stock>
<symbol>AOL</symbol>
<name>America Online</name>
<price>51.05</price>
</stock>
<stock>
<symbol>IBM</symbol>
<name>International Business Machines</name>
<price>116.10</price>
</stock>
<stock>
<symbol>MOT</symbol>
<name>MOTOROLA</name>
<price>15.20</price>
</stock>
</portfolio>

Para comenzar se debe bajar el iReport, para este tutorial se usa la version 3.7.6
http://sourceforge.net/projects/ireport/files/iReport/ se descomprime el archivo y se coloca en una ubicación conveniente. (Cabe aclarar que este tutorial se realizó en una computadora con Gentoo Linux)
1.- Se abre el programa buscando el ejecutable en /ubicacionDeiReport/iReport-3.7.6/bin (en Linux los archivos .sh, en windows los archivos .exe. Al ejecutarlos se abre la siguiente ventana


2.- Para crear la fuente de datos selecionamos la figura de y se abre una caja de diálogo como la de la figura:






y selecionamos “New”
2.1.- En la ventana de diálogo se escoge la opción XML file datasource y se da click en el botón next.
2.2.- Se llenan los datos que se solicitan. En esta caso name





En name se escribe el nombre deseado, se selecciona la opción Create a data source using this expresion, en este caso “/portfolio/stock”, para especificar la fuente de datos que se usará, el nodo stock como su nodo base. Finalmente se da click en Save.


3.-Ahora que ya está configurada la fuente de datos se crea el reporte dando click en File , New y se abre una caja de dialogo parecida a esta:




Se selecciona Blank A4 Landscape y se da click en Launch Report Wizard para luego llenar los datos restantes en la pantalla:






Se selecciona el nombre del reporte y la ubicación del mismo. Se puede apreciar que en la ubicación designada se crea el archivo .jrxml, el cual contiene las características del reporte en texto plano. Click en Next.






Se selecciona la fuente de datos que se creó en pasos anteriores(aunque también se puede crear aquí la fuente de datos).






En esta pantalla no se ha encontrado cómo agregar los campos.






tampoco en esta pantalla.






Al darle click en el botón Finish se abre una ventana parecida a esta (la visualizacion es en modo Designer):






Esta es la visualización XML






Y esta es la visualización Preview






Proceso para crear un reporte sencillo:


1.-Abrir la barra de herramientas Palette con la combinación de teclas “Ctrl”+”Shift”+”8” o en el menú “Window” + “Palettte”. Se carga una barra de herramientas como esta:






2.- Insertar todos los textos estáticos como títulos, encabezados y demás.

  • Para insertar los textos se selecciona Static Text y se arrastra hasta la ubicación deseada
  • Se crea un cuadro el cual puede editarse dando click sobre él.

También se pueden editar sus propiedades seleccionando el Static Text y dando click sobre la barra de herramientas Properties al lado derecho de la ventana de iReport. Esta barra es de gran utilidad ya que contiene opciones como: centrar, cambiar el tamaño y el tipo de letra, aplicarle negritas,cursiva y demas.






Asi se vería en el preview






3.-Para agregar la información dinámica:

  • Se crea un Field

dando click derecho sobre la opción Field en la barra izquierda ,
y dando click sobre la opción Add Field.

  • Ahora se edita el field dando click sobre la opción Properties que se encuentra en la barra de herramientas.





  • Las propiedades que se muestran son: Name, Field Class y Description. En este último se especifica el nodo XML que quiere mostrar. En este caso en particula se escribe symbol ya que anteriormente se eligió la expresión "/portfolio/stock". En caso contrario tendría que especificarse así: "/portfolio/stock/symbol".
  • A continuación, se arrastra el field hacia el reporte y se ubica en el área deseada.Ahora insertamos el “field” en el reporte, arrastrando el field al area deseada.








Lo que resta por hacer es compilar el reporte para que el iReport genere el archivo .jrxml. Esta acción se hace automáticamente al seleccionar Preview.





Aqui se deja el código Java para compilar y ejecutar los reportes en JasperReports



try{
JRXmlDataSource datasourceXml=new JRXmlDataSource(“ubicacionDelXML”, “expresionParaXML/portfolio/stock”);
HashMap unHashMapVacioParaManejarLosCampos=new HashMap();
JasperPrint print=JasperFillManager.fillReport(“UbicacionJRXML”, unHashMapVacioParaManejarLosCampos,datasourceXml);
JasperPrintManager.printReport(print, true);
}catch(JRException jre){
System.out.println("Error Exception");
jre.printStackTrace();
}

Con la siguiente instrucción se activa el Viewer de JasperReports:

JasperViewer.viewReport(print, false);
El false indica que al cerrar el Viewer no se debe apagar el Tomcat.

Con esta instrucción se exporta el reporte a formato PDF:

JasperExportManager.exportReportToPdfFile(print, "UbcacionyNombreDelArchivo.pdf");

Escrito por Eder Martinez
Editado por Ing. Omar Otoniel

Comentarios

Entradas populares de este blog

Batch File como Servicio de Windows

Cómo crear archivos XML en Java con JAXB

Ejecutando Jetty como un Servicio en Windows Server 2012