JasperReports, el primer reporte

Crear una Plantilla JRXML

Todas las plantillas JasperReports son archivos XML que tienen la extensión JRXML, nuestra primera plantilla se llamará PrimerReport.jrxml y contendra el siguiente código:

<?xml version="1.0"?>
<!DOCTYPE jasperReport
 PUBLIC "-//JasperReports//DTD Report Design//EN"
 "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="PrimerReport">
 <detail>
 <band height="20">
 <staticText>
 <reportElement x="20" y="0" width="200" height="20"/>
 <text><![CDATA[El primer paso con JasperReports.]]></text>
 </staticText>
 </band>
 </detail>
</jasperReport>

Vista Previa de la Plantilla

JasperReports tiene una clase utilitaria para obtener una vista previa de la plantilla JRXML, net.sf.jasperreports.view.JasperDesignViewer, y se puede ejecutar usando Ant, para ello crearemos un proyecto con eclipse.

La estructura del proyecto es el de la siguiente imagen:

Estructura del proyecto

Estructura del proyecto

Ahora crear un archivo build.xml que contiene el siguiente codigo:

<project name="Primer reporte" default="JasperDesignViewer" basedir=".">
 <description>Muestra la vista previa del reporte.</description>
 <property name="file.name" value="src/report/PrimerReport" />
 <property name="jasper.dir" value="C:/java/workspace/PrimerReport" />
 <property name="classes.dir" value="${jasper.dir}/build/classes" />
 <property name="lib.dir" value="${jasper.dir}/lib" />
 <path id="classpath">
 <pathelement location="./" />
 <pathelement location="${classes.dir}" />
 <fileset dir="${lib.dir}">
 <include name="**/*.jar" />
 </fileset>
 </path>
 <target name="JasperDesignViewer" description="Vista previa de la plantilla.">
 <java classname="net.sf.jasperreports.view.JasperDesignViewer" fork="true">
 <arg value="-XML" />
 <arg value="-F${file.name}.jrxml" />
 <classpath refid="classpath" />
 </java>
 </target>
 <target name="compile" description="Compila de JRXML a jasper">
 <taskdef name="jrc" classname="net.sf.jasperreports.ant.JRAntCompileTask">
 <classpath refid="classpath" />
 </taskdef>
 <jrc destdir="./src/report">
 <src>
 <fileset dir="./src/report">
 <include name="**/*.jrxml" />
 </fileset>
 </src>
 <classpath refid="classpath" />
 </jrc>
 </target>
 <target name="JasperViewer" description="Visualiza el archivo jrprint.">
 <java classname="net.sf.jasperreports.view.JasperViewer" fork="true">
 <arg value="-F${file.name}.jrprint" />
 <classpath refid="classpath" />
 </java>
 </target>
</project>

Agregamos las librerias necesarias y abrimos la vista Ant en eclipse:

Vista Ant

Vista Ant

Ejecutamos el comando JasperDesignViewer y obtenemos el preview de la plantilla diseñada anteriormente.

Vista Previa

Vista Previa

Compilar la Plantilla JRXML

Algunas aplicaciones necesitan crear el archivo JRXML en tiempo de ejecución, es este ejemplo usaremos la clase net.sf.jasperreports.ant.JRAntCompileTask para compilar el archivo JRXML y crear el archivo con extension jarper. Para compilar con ant ejecutamos el task compile, luego ejecutamos la tarea compile y se genera un archivo con extension jasper.

Generar el Reporte

Luego de compilar podemos generar el reporte usando la clase net.sf.jasperreports.engine.JasperFillManager, llamando al método:

JasperFillManager.fillReportToFile(String file, Map params, JRDataSource ds)

Al llamar al método anterior debemos tener un archivo jrprint en la localizacion del archivo jarper. Usaremos la clase JasperFillManagerHijo.java que tiene el siguiente código:

package predeterm;
import java.util.HashMap;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
public class JasperFillManagerHijo {
 public static void main(String args[]) {
 try {
 JasperFillManager
 .fillReportToFile(
 "C:/java/workspace/PrimerReport/src/report/PrimerReport.jasper",
 new HashMap(), new JREmptyDataSource());
 } catch (JRException e) {
 e.printStackTrace();
 }
 }
}

Ejecutamos para obtener el archivo jrprint.

Visualización del reporte

JasperReports tiene una clase utilitaria llamada JasperViewer que podemos usar para ver el reporte generado, lo ejecutamos usando Ant y el task JasperViewer y lo que obtenemos sería lo siguiente:

Vista final

Vista final

Antes de terminar, el archivo build.properties es el siguiente:

debug=yes
servlet.lib.jar=C:/Archivos de programa/Apache Software Foundation/Tomcat 6.0/lib/servlet-api.jar
jasperreports.dir=C:/java/spring-framework-2.5.6.SEC01
jasperreports.lib.jar=${jasperreports.dir}/lib/jasperreports/jasperreports-2.0.5.jar
jasperreports.lib.dir=${jasperreports.dir}/lib
itext.lib.jar=${jasperreports.lib.dir}/itext/iText-2.1.3.jar
beanutils.lib.jar=${jasperreports.lib.dir}/jakarta-commons/commons-beanutils.jar
collections.lib.jar=${jasperreports.lib.dir}/jakarta-commons/commons-collections.jar
xalan.lib.jar=${jasperreports.lib.dir}/xalan/xalan.jar
warfile=reports.war
src.dir=src
src.deploy.dir=${src.dir}/deploy
reports.dir=reports
build.dir=build
war.dir=war
deploy.dir=C:/Archivos de programa/Apache Software Foundation/Tomcat 6.0/webapps
rpt=PrimerReport

Es todo.

Etiquetas:

Una respuesta to “JasperReports, el primer reporte”

  1. Alexander Ramirez Ruiz Says:

    Hola. Tu articulo me fui muy útil. Muchas gracias. Solo tengo una pregunta ¿Para que sirve el archivo build.properties?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: