Professional Documents
Culture Documents
AndrsAznar
andres.aznar.royo@gmail.com
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
Pgina 2
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.
Pgina 4
El presente documento est realizado con una configuracin de MySQL 5.5, Liferay 6.1 bajo Tomcat 7.0.29, siendo totalmente operativo.
Pgina 5
Pgina 6
Pgina 7
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)
Pgina 8
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.
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.
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.
Pgina 11
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.
Pgina 12
Visin del portal y de los cuatro posibles portlets que se pueden integrar
Pgina 13
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.
Pgina 14
Pgina 15
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.
Pgina 16
Repitiendo la misma accin se podr seleccionar otro informe y seguir viendo los diferentes resultados.
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.
Pgina 17
F
Vista de iReport: cdigo XML con el parmetro datasource y su definicin
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.
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.
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>
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"
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>
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">
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>
Pgina 25