You are on page 1of 25

AperteReports:IntegrandoinformesdeJasperenLiferay

AndrsAznar
andres.aznar.royo@gmail.com

Andrs Aznar Royo

Pgina 1

INDICE 1.- La creacin de informes y su publicaci .....................................3 1.1.- Jaspersoft iReports..................................................................3 1.2.- Aperte Reports ........................................................................3 2.- Prerrequisitos para la instalacin ...............................................5 3.- Instalando Aperte Reports ..........................................................6 3.1.- El software de Aperte ..............................................................6 4.- Instalacin de Aperte Reports ....................................................8 4.1.- Despliegue del WAR File.........................................................8 4.2.- La configuracin de la conexin JNDI .....................................8 4.3.- Actualizacin de Vaadin ........................................................10 5.- Los portlets de Aperte Reports .................................................13 5.1.- El portlet de administracin ...................................................13 5.3.- El portlet de visualizacin ..................................................16 5.4.- Los portlets para informes en background.......................17 6.- La generacin de los informes en Jasper .................................18 6.1- La definicin del parmetro datasource .................................18 6.2.- La sintaxis de los parmetros propios de informes.........18 7.- Conclusiones ............................................................................20

Andrs Aznar Royo

Pgina 2

1.- La creacin de informes y su publicacin


1.1.- Jaspersoft iReports
La gestin de la informacin a partir de su almacenamiento en bases de datos relacionales permite realizar una exportacin de las mismas y una representacin en listados o grficos que mejora la comprensin de los datos. Este ha sido el origen de las aplicaciones de reporting, datawarehousing, business intelligence, datamining etc Dentro de las aplicaciones open source destinadas a este tipo de sistemas la ms significativa y ms utilizada ha sido la herramienta de Jaspersoft comnmente conocida como Jasper Reports. El programa iReport permite la generacin de informes a partir de datos clasificados, ya sean estos tablas de una base de datos, hojas de clculo, ficheros ASCII o datos embebidos en Javabeans. Muchos sistemas realizados a medida en tecnologa J2EE han utilizado estos informes y las libreras de Jasper para integrar la visin de esa informacin embebida. Teniendo en cuenta que Liferay es un portal basado en Java es lgico pensar que existan formas de poder embeber esos informes dentro del portal y generar portlets para visualizar o exportar en formato documental dichos informes.

Vista de Liferay con la integracin de el visor de informes de Jasper de Aperte Reports

1.2.- Aperte Reports


Aperte Reports es un desarrollo realizado desde la empresa Bluesoft, open source, y que permite introducir dentro de Liferay la visin de los informes generados con Jaspersoft iReports. A partir de su web en el vault de desarrollos de Google

Andrs Aznar Royo

Pgina 3

http://code.google.com/p/aperte-reports es posible descargar su aplicacin y las instrucciones propias para ser integrado dentro de nuestro entorno Liferay (o utilizar un bundle de prueba ya creado con Liferay+Aperte Reports). No obstante este documento pretende realizar dicha tarea de una forma ms ilustrativa y en lengua castellana. Aperte Reports nos permitir insertar dentro de Liferay aquellos informes que hayamos realizado con iReports, incluyendo la posibilidad de que integren parmetros a fin de poder visualizarlos de forma dinmica en funcin de los mismos. Tambin ser posible realizar exportacin de los informes a formatos como PDF o MS Excel.

Vista de la generacin de informes en PDF desde Aperte Reports en Liferay

Andrs Aznar Royo

Pgina 4

2.- Prerrequisitos para la instalacin


Aperte Reports est basado en estndares open source, desde el propio Liferay, hasta Vaadin, Hibernate o Quarz. En base a ello es muy posible que el funcionamiento del sistema pueda extrapolarse a otros entornos no listados en este captulo. No obstante, el testing realizado desde Bluesoft y, por tanto, los entornos sobre los cuales el software est certificado, son los siguientes: Base de datos: o HSQL (embebido en el bundle de descarga de Liferay 6). Esta base de datos no se recomienda desde Liferay para entornos de produccin. o PostgreSQL en su versin 9.1 o MySQL en su versin 5.0.77 o Oracle en su versin 10g Servidor de aplicaciones: o Glashfish en versin 3.0.1 o JBoss en su versin 5.1 o Tomcat en versin 6.0.29 (con funcionalidad limitada ya que no permite la funcionalidad de Cyclic reports). Contenedor de portlet: o Liferay 6.0.6 Community Edition o Liferay 6.1 Community Edition

El presente documento est realizado con una configuracin de MySQL 5.5, Liferay 6.1 bajo Tomcat 7.0.29, siendo totalmente operativo.

Andrs Aznar Royo

Pgina 5

3.- Instalando Aperte Reports


3.1.- El software de Aperte
El software de Aperte Reports est disponible para la descarga en la direccin: http://code.google.com/p/aperte-reports/downloads/list Este directorio contiene dos tipos de ficheros: El fichero WAR de la aplicacin para ser desplegado sobre un servidor de aplicaciones (en diferentes versiones) Un bundle de Liferay (bajo Tomcat) preconfigurado para poder desplegar en l la aplicacin. El bundle no contiene Aperte Reports.

Pantalla de descarga de Aperte Reports

3.1.1.- El bundle de Liferay preconfigurado


El bundle de Liferay configurado y descargable contiene dos modificaciones respecto de la instalacin estndar del portal: Dispone de la versin 6.7.4 de Vaadin, una versin ms reciente y necesaria para el uso de Aperte Reports que la que trae de serie Liferay. Ya tiene configurada la conexin JNDI con una base de datos a fin de cargar los datos de los reports.

Andrs Aznar Royo

Pgina 6

3.1.2.- El fichero WAR de despliegue


El fichero WAR de la aplicacin es un fichero estndar para ser desplegado en un servidor de aplicaciones como Tomcat o JBoss. Como cualquier otra aplicacin que se vaya a incluir como portlets dentro de Liferay la forma de realizar esta instalacin es colocar el fichero en el directorio {Directorio de Liferay}\deploy

Andrs Aznar Royo

Pgina 7

4.- Instalacin de Aperte Reports

4.1.- Despliegue del WAR File


Para instalar Aperte Reports simplemente situaremos el fichero WAR descargado en el directorio de despliegue de Liferay {Directorio de Liferay}\deploy. De esta manera el servidor de aplicaciones realizar el despliegue y la aplicacin nos aparecer en nuestro portal. Si la instalacin la realizamos sobre el bundle preconfigurado que podemos descargar de la pgina de Aperte Reports no tendremos que realizar ninguna accin adicional para tener disponible el aplicativo. Si nuestro despliege se realiza sobre una instalacin ya realizada de Liferay tendremos que realizar dos operaciones adicionales para que Aperte Reports funcione: Configurar la conectividad de nuestro servidor de aplicaciones con la fuente de alimentacin de datos (la base de datos o de donde se vayan a extraer los datos para la generacin de los informes). Actualizar la versin de Vaadin si la que disponemos es anterior a la 6.7.4.

4.2.- La configuracin de la conexin JNDI


Aperte Reports utiliza una conexin con la fuente de datos de los informes JNDI que nombre como jdbc/aperte-reports. Esto nos obligar a realizar dos cosas en nuestra instalacin y utilizacin del sistema: Deberemos configurar dicha conexin en nuestro servidor de aplicaciones. Los informes generados desde iReport debern incluir esta conexin como parmetro a fin que Liferay encuentre donde debe ir a buscar los datos. Esta segunda parte la trataremos ms adelante.

Para dar de alta una conexin JNDI del servidor de aplicaciones contra una base de datos debemos configurarla en su fichero context.xml. Este fichero se halla ubicado en el directorio {Directorio del servidor de aplicaciones}\conf. Si, por ejemplo, hemos instalado el bundle de Liferay extrado de su propia web en nuestra unidad D: lo deberemos buscar en: D:\Liferay\tomcat-7.0.23\conf. En nuestro caso basaremos nuestra conexin en los siguientes parmetros: Usaremos un motor de base de datos mySQL 5.5 Nuestro usuario ser root con contrasea admin Nuestra base de datos se llamar jasper La tendremos localizada en la misma mquina que Liferay y Aperte (en el localhost)

Andrs Aznar Royo

Pgina 8

Vista de la base de datos mySQL desde Quest Toad

En base a todo lo anterior deberemos declarar en nuestro context.xml la siguiente instruccin:


<Resource name="jdbc/aperte-reports" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/jasper" maxActive="8" maxIdle="4" username="root" password="admin" />

Fichero context.xml del servidor de aplicaciones con la conexin jdbc/aperte-reports

Andrs Aznar Royo

Pgina 9

Esta instruccin crear la conexin desde el servidor de aplicaciones a la base de datos en mySQL, y Aperte Reports la utilizar para obtener los datos con los que generar el informe.

4.3.- Actualizacin de Vaadin


El bundle de Liferay ya incopora Vaadin en su estructura. Vaadin es un framework web creado para desarrollar aplicaciones RIA (Rich Internet Applications) sin plugins y con una arquitectura server-driven, con un modelo orientado a componentes y pensando en la simplificacin de la programacin; no es necesario conocer ni HTML, ni XML ni Javascript. La versin de Vaadin incorporada en el ltimo bundle de Liferay es anterior a la 6.7.4 que es la que nos solicita Aperte Reports para funcionar. Por tanto, si vamos a trabajar sobre el bundle o sobre una instalacin con un Vaadin anterior, debemos realizar la actualizacin. Si nuestra instalacin adems de las libreras y ficheros dispone del portlet de Vaadin, esta actualizacin se puede realizar directamente desde Liferay. Hay determinadas aplicaciones, como por ejemplo Aperte Workflow (otra aplicacin de origen similar a la que tratamos pensada para la generacin de workflows jBPM dentro de Liferay) que en sus bundles incorporan no slo la actualizacin de los ficheros de Vaadin, sino el propio portlet de administracin.

Acceso al gestor de Vaadin en el panel de control de Liferay

Andrs Aznar Royo

Pgina 10

Este portlet de administracin se sita en la parte del men de portal. El portlet nos muestra la informacin sobre la versin en los settings, adems de indicarnos cual es la versin ms actual disponible. Desde all podemos utilizar la opcin change version para actualizarlo. Una vez actualizado hemos de recordar que hemos de recompilarlo. Para ello usaremos el botn compile widget set que est encima de la consola de mensajes.

Portlet de gestin de Vaadin en el panel de control de Liferay

Si no disponemos del portlet de control de Vaadin en nuestra instalacin de Liferay deberemos aplicar los cambios de manera manual. Estos cambios consisten en: Cambiar la librera vaadin.jar de Vaadin ubicada en el directorio {servidor de aplicaciones}\webapps\ROOT\WEB-INF\lib. Actualizar el denominado widget set, que corresponde a los ficheros de Vaadin ubicados en el directorio del servidor de aplicaciones (Tomcat) {servidor de aplicaciones}\webapps\ROOT\html\VAADIN.

Para realizar estos cambios iremos a la pgina web de versiones de Vaadin (https://vaadin.com/releases) y descargaremos el software necesario. En principio la versin sobre la que est desarrollado Aperte Reports es la 6.7.4, pero sobre las posteriores hasta la 6.7.6 se ha comprobado el correcto funcionamiento. Debemos descargar el paquete denominado Vaadin 6 Jar-only for all platforms que incluye el fichero vaadin.jar y el denominado Vaadin 6 Liferay update package. El primero slo contiene la librera .jar. El segundo contiene un fichero comprimido con el widget set.

Andrs Aznar Royo

Pgina 11

Vista de la pgina de descarga de versiones de Vaadin

Vista del contenido del fichero vaadin-6.7.5-liferay.zip el widget set de Vaadin para Liferay

Seguiremos ahora los pasos indicados: El fichero .jar descargado (que tendr como nombre vaadin-6.7.x.jar) lo pondremos en el directorio {servidor de aplicaciones}\webapps\ROOT\WEBINF\lib y lo renombraremos a vaadin.jar. Deberemos borrar o renombrar el existente previamente con ese nombre perteneciente a la versin anterior. Es posible que existan otras aplicaciones (no slo el propio Liferay) A continuacin descomprimiremos el fichero con los archivos del widget set (vaadin-6.7.x-liferay.zip) en el directorio del servidor de aplicaciones {servidor de aplicaciones}\webapps\ROOT\html reescribiendo los ficheros nuevos sobre aquellos ya existentes de la versin anterior

La actualizacin de Vaadin se deber completar rearrancando el servidor de aplicaciones y Liferay. Una vez generada la conexin JNDI en el servidor, actualizado Vaadin, y desplegado el fichero WAR ya dispondremos de Aperte Reports en nuestro gestor de contenidos.

Andrs Aznar Royo

Pgina 12

5.- Los portlets de Aperte Reports


Aperte reports nos generar, en su despliegue los siguientes portlets dentro de Liferay: Portlet de administracin en el panel de control (Aperte Reports Manager). Cuatro portlets de utilizacin dentro del portal o Aperte Cyclic Reports o Aperte Resports Dashboard o Aperte Reports Invoker o Aperte Reports Order Browser

Visin del portal y de los cuatro posibles portlets que se pueden integrar

5.1.- El portlet de administracin


El portlet de administracin (Aperte Reports Manager) nos aparecer en nuestro panel de control de Liferay. Ser con l que podamos realizar la importacin de los informes generados en iReport de Jasper que queremos que sean visualizados y gestionados en nuestro portal.

Andrs Aznar Royo

Pgina 13

Acceso al portlet de administracin desde el panel de control de Liferay

En el portlet veremos que por una parte disponemos del botn upload new que nos permitir insertar nuevos informes dentro de Liferay. Por otro lado tenemos los diferentes informes ya insertados donde mediante la opcin de show parameters podemos desplegar las propiedades e incluso generar la exportacin de los mismos para ver el resultado.

Portlet de administracin de Aperte Reports en el panel de control

Ejemplo de generacin de un report en PDF desde el portlet de administracin

5.2.- El portlet de generacin y exportacin


Aperte report invoker es un portlet que nos permite generar informes y exportarlos a diferentes formatos: CSV, HTML, MS Excel y PDF. Bsicamente nos traslada la funcionalidad que ya tiene el portlet de administracin en el panel de control a un portlet publicable en cualquiera de las pginas de nuestro portal de Liferay.

Andrs Aznar Royo

Pgina 14

Visin del portlet Aperte Reports Invoker

Vista de la exportacin a Excel del informe

Andrs Aznar Royo

Pgina 15

5.3.- El portlet de visualizacin


El portlet de visualizacin (Aperte Reports Dashboard) permite realizar la visualizacin de los informes dentro de la propia interfaz de Liferay (sin necesidad de generarlo sobre un formato externo como PDF o XLS).

Visin del portlet Aperte Reports Dashboard

En este portlet se nos permitir visualizar aquel informe que queramos (y, obviamente, cambiar de uno a otro). Para realizar la visualizacin del informe los pasos a seguir sern: 1. Seleccionar desde el men de herramientas la opcin de preferencias.

2. Seleccionar el informe y completar los parmetros adicionales que el propio informe requiera.

3. Salvar mediante el botn Save e indicar que se desea volver a la pgina ndice.

Andrs Aznar Royo

Pgina 16

Repitiendo la misma accin se podr seleccionar otro informe y seguir viendo los diferentes resultados.

5.4.- Los portlets para informes en background


Aperte reports permite la generacin de informes en background, as que los resultados no se generan de forma automtica e inmediata. Estos informes se pueden guardar en el sistema e incluso enviar por correo electrnico. Existen dos porlets para tratar estos tipos de informes: Aperte reports order browser nos permite acceder a todos los reports generados en background para poder visualizarlos en pantalla. Aperte cyclic reports permite gestionar la generacin de informes peridicos, que se generarn en background cuando pertoque.

Los informes en background no son operativos si el entorno de implementacin de Liferay es Tomcat, por lo que no sern tratados en este documento en profundidad.

Andrs Aznar Royo

Pgina 17

6.- La generacin de los informes en Jasper


A fin que los informes generados en iReports puedan ser introducidos en nuestro Aperte Reports para su integracin en Liferay se han de realizar algunas implementaciones en nuestro fichero jrxml del informe.

6.1.- La definicin del parmetro datasource


En el fichero del informe deberemos aadir un parmetro que deber llamarse datasource. Este parmetro tendr en su descripcin la cadena de conexin que usaremos y que habamos definido con anterioridad, en la instalacin de Aperte, en el fichero context.xml. Ser un parmetro esttico cuya nica validez ser para que lo interpreten nuestros portlet.
<parameter name="datasource" class="java.lang.String" isForPrompting="false"> <parameterDescription> <![CDATA[java:comp/env/jdbc/aperte-reports]]></parameterDescription> </parameter>

F
Vista de iReport: cdigo XML con el parmetro datasource y su definicin

6.2.- La sintaxis de los parmetros propios de informes


El resto de parmetros que utilicen los informes debern estar introducidos tambin mediante la llamada a nuestra cadena de conexin JNDI que tenemos definida java:comp/env/jdbc/aperte-reports.

Andrs Aznar Royo

Pgina 18

As la sintaxis de un parmetro como puede ser el mes (para extraer el informe de ventas mensual) tendr un cdico xml como el siguiente:
<parameter name="mes" class="java.lang.String"> <property name="input_type" value="select"/> <property name="dict_query" value="java:comp/env/jdbc/aperte-reports; select distinct(ven_mes), ven_mes as displayed_username from jas_ventas"/> </parameter>

Vista de iReport: cdigo XML con la sintaxis indicada para los parmetros.

Andrs Aznar Royo

Pgina 19

7.- Conclusiones
Mediante Aperte Reports podemos integrar informes realizados en iReports de Jasper en nuestro portal de Liferay. Estos informes deben tener un cdigo XML adaptado (en la definicin de los parmetros) para que puedan ser ledos en nuestro sistema. La funcionalidad que nos presenta Aperte con los informes incluye: Inclusin de los informes dentro de Liferay y visualizacin a travs del portlet de dashboard. Gestin y exportacin de los informes a formatos CSV, Excel, HTML y PDF desde el portlet invoker (y desde el manager). Posibilidad de generar informes en background y cclicos (no vlido si se utiliza Tomcat como servidor de aplicaciones).

En la pgina siguiente se muestra el cdigo del report utilizado como ejemplo en este manual.

Andrs Aznar Royo

Pgina 20

<?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="04_2011Quat3_Mes_P.jrxml" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"> <property name="ireport.zoom" value="1.0"/> <property name="ireport.x" value="0"/> <property name="ireport.y" value="218"/> <style name="Title" fontName="Times New Roman" fontSize="50" isBold="true" pdfFontName="TimesBold"/> <style name="SubTitle" forecolor="#736343" fontName="Arial" fontSize="18"/> <style name="Column header" forecolor="#666666" fontName="Arial" fontSize="12" isBold="true"/> <style name="Detail" fontName="Arial" fontSize="12"/> <style name="Row" mode="Transparent"> <conditionalStyle> <conditionExpression><![CDATA[$V{REPORT_COUNT}%2 == 0]]></conditionExpression> <style backcolor="#E6DAC3"/> </conditionalStyle> </style> <parameter name="datasource" class="java.lang.String" isForPrompting="false"> <parameterDescription><![CDATA[java:comp/env/jdbc/aperte-reports]]></parameterDescription> </parameter> <parameter name="mes" class="java.lang.String"> <property name="input_type" value="select"/> <property name="dict_query" value="java:comp/env/jdbc/aperte-reports; select distinct(ven_mes), ven_mes as displayed_username from jas_ventas"/> </parameter> <queryString> <![CDATA[select * from jas_ventas where ven_mes = $P{mes} order by ven_idZona]]> </queryString> <field name="ven_idEntrada" class="java.lang.Integer"/> <field name="ven_idEmpresa" class="java.lang.Integer"/> <field name="ven_nomEmpresa" class="java.lang.String"/> <field name="ven_anyo" class="java.lang.Integer"/> <field name="ven_mes" class="java.lang.String"/> <field name="ven_idComercial" class="java.lang.Integer"/> <field name="ven_nomComercial" class="java.lang.String"/> <field name="ven_idZona" class="java.lang.Integer"/> <field name="ven_nomZona" class="java.lang.String"/> <field name="ven_cifra" class="java.lang.Float"/> <field name="ven_idMes" class="java.lang.Long"/> <variable name="ven_cifra_1" class="java.lang.Float" calculation="Sum"> <variableExpression><![CDATA[$F{ven_cifra}]]></variableExpression> </variable> <background> <band height="802" splitType="Stretch"> <image> <reportElement x="0" y="289" width="555" height="513"/> <imageExpression><![CDATA["D:\\Liferay\\imagenes\\jaspersoftlogobackground.jpg"]]></imageExpression> </image> </band> </background> <title> <band height="65" splitType="Stretch"> <staticText> <reportElement x="149" y="10" width="404" height="32"/> <textElement textAlignment="Center"> <font size="20" isBold="true"/> </textElement> <text><![CDATA[INFORME DE VENTAS POR MES]]></text> </staticText> <staticText>

Andrs Aznar Royo

Pgina 21

<reportElement x="481" y="44" width="74" height="20"/> <textElement textAlignment="Right"> <font size="14" isBold="true"/> </textElement> <text><![CDATA[Ao 2011]]></text> </staticText> <image> <reportElement x="3" y="4" width="126" height="40"/>

<imageExpression><![CDATA["D:\\Liferay\\imagenes\\jaspersoftlogo.gif"]]></imageExpression> </image> </band> </title> <pageHeader> <band splitType="Stretch"/> </pageHeader> <columnHeader> <band height="47" splitType="Stretch"> <line> <reportElement positionType="FixRelativeToBottom" x="0" y="15" height="1"/> <graphicElement> <pen lineWidth="0.5" lineColor="#999999"/> </graphicElement> </line> <staticText> <reportElement style="Column header" x="2" y="0" width="80" forecolor="#736343"/> <textElement> <font fontName="SansSerif"/> </textElement> <text><![CDATA[Empresa]]></text> </staticText> <staticText> <reportElement style="Column header" x="82" y="0" width="67" forecolor="#736343"/> <textElement> <font fontName="SansSerif"/> </textElement> <text><![CDATA[Ao]]></text> </staticText> <staticText> <reportElement style="Column header" x="149" y="0" width="80" forecolor="#736343"/> <textElement> <font fontName="SansSerif"/> </textElement> <text><![CDATA[Mes]]></text> </staticText> <staticText> <reportElement style="Column header" x="229" y="0" width="80" forecolor="#736343"/> <textElement> <font fontName="SansSerif"/> </textElement> <text><![CDATA[Matricula]]></text> </staticText> <staticText> <reportElement style="Column header" x="309" y="0" width="80" forecolor="#736343"/> <textElement> <font fontName="SansSerif"/> </textElement> <text><![CDATA[Comercial]]></text> </staticText> <staticText>

width="555"

height="16"

height="16"

height="16"

height="16"

height="16"

Andrs Aznar Royo

Pgina 22


forecolor="#736343"/>

<reportElement style="Column header" x="389" y="0" width="80" height="16" <textElement> <font fontName="SansSerif"/> </textElement> <text><![CDATA[Zona]]></text> </staticText> <staticText> <reportElement style="Column header" x="469" y="0" width="86" height="16"

forecolor="#736343"/> <textElement> <font fontName="SansSerif"/> </textElement> <text><![CDATA[Ventas]]></text> </staticText> <staticText> <reportElement style="Column header" x="2" y="21" width="37" height="23" forecolor="#736343"/> <textElement textAlignment="Right"> <font fontName="SansSerif" size="14"/> </textElement> <text><![CDATA[Mes:]]></text> </staticText> <textField isStretchWithOverflow="true"> <reportElement style="Detail" x="43" y="21" width="124" height="23"/> <textElement> <font fontName="SansSerif" size="14" isBold="true"/> </textElement> <textFieldExpression><![CDATA[$F{ven_mes}]]></textFieldExpression> </textField> </band> </columnHeader> <detail> <band height="15" splitType="Stretch"> <frame> <reportElement style="Row" mode="Opaque" x="0" y="0" width="555" height="15"/> <textField isStretchWithOverflow="true"> <reportElement style="Detail" x="2" y="0" width="80" height="15"/> <textElement> <font fontName="SansSerif"/> </textElement> <textFieldExpression><![CDATA[$F{ven_nomEmpresa}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> <reportElement style="Detail" x="82" y="0" width="67" height="15"/> <textElement> <font fontName="SansSerif"/> </textElement> <textFieldExpression><![CDATA[$F{ven_anyo}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> <reportElement style="Detail" x="149" y="0" width="80" height="15"/> <textElement> <font fontName="SansSerif"/> </textElement> <textFieldExpression><![CDATA[$F{ven_mes}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> <reportElement style="Detail" x="229" y="0" width="80" height="15"/> <textElement> <font fontName="SansSerif"/> </textElement>

Andrs Aznar Royo

Pgina 23

<textFieldExpression><![CDATA[$F{ven_idComercial}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> <reportElement style="Detail" x="309" y="0" width="80" height="15"/> <textElement> <font fontName="SansSerif"/> </textElement> <textFieldExpression><![CDATA[$F{ven_nomComercial}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true"> <reportElement style="Detail" x="389" y="0" width="80" height="15"/> <textElement> <font fontName="SansSerif"/> </textElement> <textFieldExpression><![CDATA[$F{ven_nomZona}]]></textFieldExpression> </textField> <textField isStretchWithOverflow="true" pattern="#,##0.00"> <reportElement style="Detail" x="469" y="0" width="86" height="15"/> <textElement> <font fontName="SansSerif"/> </textElement>

<textFieldExpression><![CDATA[$F{ven_cifra}]]></textFieldExpression> </textField> </frame> </band> </detail> <columnFooter> <band height="4" splitType="Stretch"> <line> <reportElement positionType="FixRelativeToBottom" x="0" y="3" width="555" height="1"/> <graphicElement> <pen lineWidth="0.5" lineColor="#999999"/> </graphicElement> </line> </band> </columnFooter> <pageFooter> <band height="32" splitType="Stretch"> <frame> <reportElement mode="Opaque" x="0" y="1" width="555" height="24" forecolor="#D0B48E" backcolor="#F2EBDF"/> </frame> </band> </pageFooter> <summary> <band height="263" splitType="Stretch"> <textField pattern="EEEEE dd MMMMM yyyy"> <reportElement x="70" y="243" width="207" height="20"/> <textElement verticalAlignment="Bottom"> <font size="8" isBold="true"/> </textElement> <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> </textField> <staticText> <reportElement x="11" y="243" width="59" height="20"/> <textElement verticalAlignment="Bottom"> <font size="8" isBold="true"/> </textElement> <text><![CDATA[Generated:]]></text> </staticText> <textField pattern="#,##0.00">

Andrs Aznar Royo

Pgina 24

<reportElement x="439" y="0" width="115" height="20"/> <textElement textAlignment="Right"> <font size="14" isBold="true"/> </textElement> <textFieldExpression><![CDATA[$V{ven_cifra_1}]]></textFieldExpression> </textField> <pie3DChart> <chart> <reportElement x="0" y="56" width="319" height="154"/> <chartTitle/> <chartSubtitle/> <chartLegend/> </chart> <pieDataset> <keyExpression><![CDATA[$F{ven_nomComercial}]]></keyExpression> <valueExpression><![CDATA[$F{ven_cifra}]]></valueExpression> </pieDataset> <pie3DPlot> <plot/> <itemLabel/> </pie3DPlot> </pie3DChart> <bar3DChart> <chart> <reportElement x="319" y="56" width="235" height="154"/> <chartTitle/> <chartSubtitle/> <chartLegend/> </chart> <categoryDataset> <categorySeries> <seriesExpression><![CDATA[$F{ven_nomComercial}]]></seriesExpression> <categoryExpression><![CDATA[$F{ven_mes}]]></categoryExpression>

<valueExpression><![CDATA[$F{ven_cifra}]]></valueExpression> </categorySeries> </categoryDataset> <bar3DPlot> <plot/> <itemLabel/> </bar3DPlot> </bar3DChart> <staticText> <reportElement x="2" y="26" width="551" height="30"/> <textElement textAlignment="Center"> <font size="18" isBold="true"/> </textElement> <text><![CDATA[Ventas mensuales]]></text> </staticText> <staticText> <reportElement style="Column header" x="298" y="0" width="139" height="20" forecolor="#736343"/> <textElement textAlignment="Right"> <font fontName="SansSerif" size="14"/> </textElement> <text><![CDATA[Total de ventas:]]></text> </staticText> </band> </summary> </jasperReport>

Andrs Aznar Royo

Pgina 25

You might also like