Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2. Una vez en la pagina del proyecto iReport hay mltiples opciones de obtener la herramienta y
mltiples plataformas, solo se ofrece en modalidad de plug-in en la plataforma NetBeans; las
otras opciones son para utilizar de forma independiente en Windows, Mac Os o Linux.
5. En este punto NetBeans ya contiene las libreras de JasperReport y tambin tiene incorporado
la herramienta de diseo de reportes iReport, la cual se relaciona directamente con una Base de
Datos configurada en la barra de herramientas y tambin existe una nueva opcin en la creacin
de archivos.
Como Funciona?
Principalmente debemos comprender que se inicia con un archivo XML donde las etiquetas difieren
entre elementos como textos estticos, textos dinmicos, imgenes y formas geomtricas, tambin las
etiquetas establecen las variables, campos, parmetros, posiciones y extensiones; dentro del diseo
tambin se incluye la consulta a realizar en la base de datos, de donde se obtendr la informacin que
finalmente se mostrara en el reporte.
Una vez creado nuestro diseo, este debe ser compilado, por lo cual se genera un archivo de extensin
.jasper, durante este proceso de compilacin se verifica que la sintaxis del archivo XML para
comprobar la consistencia del diseo.Una vez el diseo se encuentra compilado entran en juego las
clases que permiten visualizar, imprimir o exportar el reporte, para dar fin al ciclo de vida.
Conceptos de Bsicos de Diseo
El diseo se representa en un template que va a ser utilizado por el motor de JasperReport para
generar un reporte de acuerdo con la estructura y completando con la informacin obtenida de la base
de datos. Cuando diseamos un reporte debemos tener en cuenta que el template esta dividi
principalmente en la siguientes secciones comnmente llamadas Band o Bandas que cuando se
genera el reporte con los datos, cada una de ella se comporta de forma diferente:
Title
Page Header
Column Header
Detail 1
Column Footer
Page Footer
Last Page Footer
Summary
No Data
Cuando diseamos debemos tener en cuenta que estos reportes estn muy adjuntos a funcionar con una
fuente de datos, cuando esta fuente es una base de datos en Postgres, MySQL entre otras, debemos
especificar la consulta (Query) que se va a realizar.
Tambin es muy importante que JasperReport maneja tres tipos diferentes de variables para el
manejo de los datos que son:
Parmetros: Se le asigna su valor antes de que el reporte sea llamado, principalmente se utilizan
para filtrar la informacin de la consulta a la base de datos o para obtener datos que no se
encuentra fcilmente en la fuente de datos.
Variables: Son utilizadas para realizar clculos dentro del reporte, como ejemplo el conteo de
las paginas.
Campos o Filas: Representan la nica manera de mapear las columnas o datos obtenidos de la
consulta realizada al sistema administrador de bases de datos, deben tener como requerimiento
el mismo nombre de cada columna con su tipo de dato compatible.
Para complementar el uso de los tipos de variables que podemos usar en JasperReport, tenemos las
Expresiones, que hacen referencia a ellos de la siguiente manera:
Obteniendo estos conceptos bsicos de diseo, procederemos a crear un ejemplo completo utilizando
los anteriormente citado:
<?xmlversion="1.0"encoding="UTF8"?>
<jasperReportxmlns="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="reportname"pageWidth="595"pageHeight="842"
columnWidth="535"leftMargin="20"rightMargin="20"topMargin="20"bottomMargin="20">
<propertyname="ireport.zoom"value="1.0"/>
<propertyname="ireport.x"value="0"/>
<propertyname="ireport.y"value="0"/>
<queryString>
<![CDATA[SELECTA.Identificacion,A.NombreAsistente,I.NombreInstitucionFROMAsistentesA,
InstitucionesIWHEREI.idInstitucion=A.Institucion]]>
</queryString>
<fieldname="Identificacion"class="java.lang.String"/>
<fieldname="Asistente"class="java.lang.String"/>
<fieldname="Institucion"class="java.lang.String"/>
<title>
<bandheight="59"splitType="Stretch">
<staticText>
<reportElementx="0"y="0"width="555"height="59"/>
<textElementtextAlignment="Center"verticalAlignment="Middle">
<fontfontName="Arial"size="40"isBold="true"/>
</textElement>
<text><![CDATA[VJornadadelSoftwareLibre]]></text>
</staticText>
</band>
</title>
<pageHeader>
<bandheight="26">
<staticText>
<reportElementx="0"y="0"width="555"height="26"/>
<textElementtextAlignment="Center"verticalAlignment="Middle">
<fontfontName="Arial"size="20"isBold="true"/>
</textElement>
<text><![CDATA[Asistentes]]></text>
</staticText>
</band>
</pageHeader>
<columnHeader>
<bandheight="20"splitType="Stretch">
<staticText>
<reportElementx="0"y="0"width="82"height="20"/>
<textElementtextAlignment="Center"verticalAlignment="Middle">
<fontfontName="Arial"size="12"/>
</textElement>
<text><![CDATA[Identificacion]]></text>
</staticText>
<staticText>
<reportElementx="82"y="0"width="254"height="20"/>
<textElementtextAlignment="Center"verticalAlignment="Middle">
<fontfontName="Arial"size="12"/>
</textElement>
<text><![CDATA[Nombres]]></text>
</staticText>
<staticText>
<reportElementx="336"y="0"width="219"height="20"/>
<textElementtextAlignment="Center"verticalAlignment="Middle">
<fontfontName="Arial"size="12"/>
</textElement>
<text><![CDATA[Institucion]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<bandheight="20"splitType="Stretch">
<textField>
<reportElementx="82"y="0"width="254"height="20"/>
<textElementtextAlignment="Left"verticalAlignment="Middle"markup="none">
<fontfontName="Arial"size="12"/>
</textElement>
<textFieldExpressionclass="java.lang.String"><!
[CDATA[$F{Asistente}]]></textFieldExpression>
</textField>
<textField>
<reportElementx="0"y="0"width="82"height="20"/>
<textElementtextAlignment="Left"verticalAlignment="Middle"markup="none">
<fontfontName="Arial"size="12"/>
</textElement>
<textFieldExpressionclass="java.lang.String"><!
[CDATA[$F{Identificacion}]]></textFieldExpression>
</textField>
<textField>
<reportElementx="336"y="0"width="219"height="20"/>
<textElementtextAlignment="Left"verticalAlignment="Middle"markup="none">
<fontfontName="Arial"size="12"/>
</textElement>
<textFieldExpressionclass="java.lang.String"><!
[CDATA[$F{Institucion}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
una clase Java indicndole los valores de las variables de tipo Parmetro y la fuente de donde
obtendr los datos, tambin debemos indicar en nuestra clase que tipo de salida obtendr; es decir, si se
exporta a un archivo, se har una impresin o se mostrara en el JasperViewer.
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.util.HashMap;
importjava.util.Map;
importnet.sf.jasperreports.engine.JasperExportManager;
importnet.sf.jasperreports.engine.JasperFillManager;
importnet.sf.jasperreports.engine.JasperPrint;
importnet.sf.jasperreports.engine.JasperPrintManager;
importnet.sf.jasperreports.view.JasperViewer;
publicclassEjemploJSL{
publicstaticvoidmain(String[]args){
newEjemploJSL();
}
publicEjemploJSL(){
try{
MapParametros=newHashMap();
JasperPrintReporte=JasperFillManager.fillReport("EjemploJSL.jasper",Parametros,this.getConnection());
JasperExportManager.exportReportToPdfFile(Reporte,"archivo.pdf");
JasperExportManager.exportReportToHtmlFile(Reporte,"archivo.html");
JasperPrintManager.printReport(Reporte,true);
JasperViewer.viewReport(Reporte);
}
catch(Exceptionex){}
}
privateConnectiongetConnection(){
try{
Class.forName("com.mysql.jdbc.Driver");
ConnectionConn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jsl","root","");
return(Conn);
}
catch(Exceptionex){return(null);}
}