SlideShare una empresa de Scribd logo
1 de 10
Generación de reportes en múltiples formatos
con JasperReport e iReport
Juan David Guarnizo Hernandez (juandavid794@gmail.com)
Grupo de Investigación en Teleinformática con software de código abierto GITECX
Facultad de Ciencias Básicas e Ingeniería Ingeniería de Sistemas
Universidad de los Llanos Villavicencio, Colombia
Introducción
Cuando se desarrolla una aplicación esta no solo debe tener la capacidad de recolectar mucha
información, sino que también debe organizarla y presentarla en usuario de una forma en que genere
algún beneficio u ofrezca alguna información a tener en cuenta en el momento de toma de decisiones
gerenciales o comerciales; sea por medio de gráficas o reportes dinámicos.
Básicamente la generación de reportes se resumen en el diseño y mapeo de datos dentro de un layout
definido. Dentro de ese contexto surgen herramientas que facilitan esta labor En el pasado esa área fue
dominada por productos comerciales como "Crystal Report" que con el pasar del tiempo se hacia mas
robusto integrando nuevas funcionalidades, en el día de hoy se cuenta con herramientas open-source
que cumplen con el mismo objetivo, que también ofrecen facilidad y robustez que la herramientas
comerciales, es el caso de JasperReport.
JasperReport
Es un poderoso framework open-source para la generación de reportes que presenta grandes habilidades
en la organización y presentación de contenido en pantalla, impresora o en formatos como PDF, HTML,
XLS, CSV y XML. Esta completamente escrito en Java y puede usarse en infinidad de aplicaciones
web, distribuidas o de escritorio habilitadas para la generación dinámica de contenido. JasperReport
organiza datos recuperados de una base de datos relacional a través de JDBC.
iReport
Aunque JasperReport es una librería que nos facilita el desarrollo, también se cuenta con una
herramienta de diseño que se puede integrar con Netbeans, donde se diseña de forma gráfica los
archivos XML que se define a través de etiquetas que obedece una estructura, vocabulario y
restricciones declarados en una archivo DTD.
Instalación
Cuando se quiere implementar JasperReport en algunas aplicaciones debemos realizar procesos
paralelos al desarrollo de la aplicación. Adelante presentare algunos ejemplo de diseño e
implementación de esta herramienta desarrollado en iReport utilizado como Plug-in de Netbeans. Por
lo tanto también explicaremos esta forma de instalación
l. El primer paso que se debe hacer el momento de instalar cualquier aplicación en la plataforma de
NetBeans es conseguir los archivos ".nbm" En el caso de "iReport" se pueden conseguir en la
dirección http:/jasperforge.org/project/ireport, Es la pagina principal del proyecto y estos
instaladores contienen incluidos las librerías de "JasperReport".
eiRepott
2. Una vez en la pagina del proyecto iReport hay múltiples opciones de obtener la herramienta y
múltiples 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.
3. Cuando se descarga iReport para trabajar en NetBeans se obtiene un archivo comprimido el cual
al descomprimirse se obtienen los siguientes archivos.
'io
de archivos
iReport-4.O. '.nbm compone
I .nbm nbm
jasperserver•plugin-
4.O.
I .nbm
4. Una vez se obtienen los archivos de instalación en NetBeans entramos a Herramientas —+
Complementos —+ Descargado —+ Agregar Plugin. Seleccionan los archivos de instalación y
se procede a realizar la instalación.
jaspe
5. En este punto NetBeans ya contiene las librerías de "JasperReport" y también tiene
incorporado la herramienta de diseño de reportes iReport, la cual se relaciona directamente
con una Base de Datos configurada en la barra de herramientas y también existe una nueva
opción en la creación de archivos.
Como Funciona?
Principalmente debemos comprender que se inicia con un archivo XML donde las etiquetas difieren
entre elementos como textos estáticos, textos dinámicos, imágenes y formas geométricas, también las
etiquetas establecen las variables, campos, parámetros, posiciones y extensiones; dentro del diseño
también se incluye la consulta a realizar en la base de datos, de donde se obtendrá la información que
finalmente se mostrara en el reporte.
Una vez creado nuestro diseño, este debe ser compilado, por lo cual se genera un archivo de extensión
'.jasper", durante este proceso de compilación se verifica que la sintaxis del archivo XML para
comprobar la consistencia del diseño.Una vez el diseño 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 Básicos de Diseño
El diseño se representa en un "template" que va a ser utilizado por el motor de "JasperRepoft" para
generar un reporte de acuerdo con la estructura y completando con la información obtenida de la base
de datos. Cuando diseñamos un reporte debemos tener en cuenta que el "template" esta dividió
Diseño Compilador
JRDataSource
principalmente en la siguientes secciones comúnmente llamadas "Band" o Bandas que cuando se
genera el reporte con los datos, cada una de ella se comporta de forma diferente:
Titie
Page Header
Column Header
Detail 1
Column Footer
Page Footer
Last Page Footer
Summary
No Data
Cuando diseñamos debemos tener en cuenta que estos reportes están 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
También es muy importante que "JasperReport" maneja tres tipos diferentes de variables para el
manejo de los datos que son:
Parámetros: Se le asigna su valor antes de que el reporte sea llamado, principalmente se utilizan
para filtrar la información de la consulta a la base de datos o para obtener datos que no se
encuentra fácilmente en la fuente de datos.
Variables: Son utilizadas para realizar cálculos 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:
SP {Nombre} para hacer referencia a algún parámetro previamente declarado
SV {Nombre} para hacer referencia a alguna variable previamente declarado
SF {Nombre} para hacer referencia a algún campo o columna previamente declarado
Obteniendo estos conceptos básicos de diseño, procederemos a crear un ejemplo completo utilizando
los anteriormente citado:
version="1.O" 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="report name" pageWidth="595"
pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20"
bottomMargin="20">
<property name="ireport.zoom"
<property
name="ireport.x"
<property name="ireport.y"
<queryString>
A.ldentificacion, A.Nombre Asistente, l.Nombre Institucion FROM Asistentes
A, Instituciones I WHERE l.idlnstitucion = A.lnstitucion]]>
</queryString>
<field name="ldentificacion"
class="java.lang.String"/>
<field
width="555" height="59"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="Arial" size-"40"
Jornada del Software
<band height="26">
<reportElement width="555" height="26"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="Arial" size-"20"
</textElement>
<columnHeader>
<reportElement y="O" width-"82"
<textElement textAlignment="Center" verticalAlignment=
<reportElement x-"82" y="O"
width-"254"
<textElement textAlignment="Center" verticalAlignment=
<font fontName="Arial"
</textElement>
<band height="20"
<field
</staticText>
<reportElement x-"336" y="O" width-"219"
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="Arial"
</textElement>
ereportElement x="82" width="254"
<textElement textAlignment="Left" verticalAlignment="Middle"
markup="none"> <font fontName="Arial"
</textElement>
<textFieldExpression
<textElement textAlignment="Left" verticalAlignment="Middle"
markup="none"> <font fontName="Arial"
</textElement>
<textFieldExpression
</textField>
<reportElement x="336" width="219"
<textElement textAlignment="Left" verticalAlignment="Middle"
markup="none"> <font fontName="Arial"
</textElement>
<textFieldExpression
Generación del Reporte desde el código Java
Observamos anteriormente la forma de diseñar un reporte con iReport iniciando desde lo mas simple.
Ahora ya que aprendimos a diseñar y compilar el reporte, veremos como es llamado en reporte desde
una clase Java indicándole los valores de las variables de tipo "Parámetro" y la fuente de donde
obtendrá los datos, también debemos indicar en nuestra clase que tipo de salida obtendrá; es decir, si
se exporta a un archivo, se hará una impresión o se mostrara en el JasperViewer.
import java. sql. Connection; import java. sql.
DriverManager; import java. util. HashMap;import java.
util. Map; import net.sf.jasperreports.
engine.JasperExportManager; import
net.sf.jasperreports. engine.JasperFillManager; import
net.sf.jasperreports. engine.JasperPrint; import
net.sf.jasperreports. engine.JasperPrintManager; import
net.sf.jasperreports. view.JasperViewer;
public class EjemploJSL{
public static void main(String[]
new EjemploJSL();
public EjemploJSL
try{
Map Parametros — new HashMap();
JasperPrint Reporte — Parametros, this.getConnection());
JasperExportManager. exportReportToPdfFile(Reporte, "archivo.pdf");
JasperExportManager.exportReportTOHtmlFile(Reporte, "archivo.html");
JasperPrintManager.printReport(Reporte, true);
JasperViewer. viewReport(Reporte);
catch(Exception
try{
Connection Conn = return(Conn);
private
⭐Generación de reportes en múltiples formatos con jasper report e ireport

Más contenido relacionado

La actualidad más candente

Hibernate ppt
Hibernate pptHibernate ppt
Hibernate pptAneega
 
How to use abap cds for data provisioning in bw
How to use abap cds for data provisioning in bwHow to use abap cds for data provisioning in bw
How to use abap cds for data provisioning in bwLuc Vanrobays
 
Node.js File system & Streams
Node.js File system & StreamsNode.js File system & Streams
Node.js File system & StreamsEyal Vardi
 
Introduction to JSX
Introduction to JSXIntroduction to JSX
Introduction to JSXMicah Wood
 
SAP ABAP - Needed Notes
SAP   ABAP - Needed NotesSAP   ABAP - Needed Notes
SAP ABAP - Needed NotesAkash Bhavsar
 
SDL2 Game Development VT Code Camp 2013
SDL2 Game Development VT Code Camp 2013SDL2 Game Development VT Code Camp 2013
SDL2 Game Development VT Code Camp 2013Eric Basile
 
LLamar reportes de iReport con NetBeans
LLamar reportes de iReport  con NetBeansLLamar reportes de iReport  con NetBeans
LLamar reportes de iReport con NetBeansEmerson Garay
 
Automate user creation using sap gui scripting
Automate user creation using sap gui scriptingAutomate user creation using sap gui scripting
Automate user creation using sap gui scriptingsparten369
 
Ejemplo LOGIN conectado a una base de datos
Ejemplo LOGIN conectado a una base de datosEjemplo LOGIN conectado a una base de datos
Ejemplo LOGIN conectado a una base de datosVane Borjas
 

La actualidad más candente (20)

Jasper Reports.pptx
Jasper Reports.pptxJasper Reports.pptx
Jasper Reports.pptx
 
Jsp ppt
Jsp pptJsp ppt
Jsp ppt
 
Hibernate ppt
Hibernate pptHibernate ppt
Hibernate ppt
 
React render props
React render propsReact render props
React render props
 
How to use abap cds for data provisioning in bw
How to use abap cds for data provisioning in bwHow to use abap cds for data provisioning in bw
How to use abap cds for data provisioning in bw
 
Node.js File system & Streams
Node.js File system & StreamsNode.js File system & Streams
Node.js File system & Streams
 
Local storage
Local storageLocal storage
Local storage
 
Reporte Java con JasperReport
Reporte Java con JasperReportReporte Java con JasperReport
Reporte Java con JasperReport
 
Introduction to JSX
Introduction to JSXIntroduction to JSX
Introduction to JSX
 
SAP ABAP - Needed Notes
SAP   ABAP - Needed NotesSAP   ABAP - Needed Notes
SAP ABAP - Needed Notes
 
Abap proxy
Abap proxyAbap proxy
Abap proxy
 
SDL2 Game Development VT Code Camp 2013
SDL2 Game Development VT Code Camp 2013SDL2 Game Development VT Code Camp 2013
SDL2 Game Development VT Code Camp 2013
 
Sap abap report program
Sap abap report programSap abap report program
Sap abap report program
 
LLamar reportes de iReport con NetBeans
LLamar reportes de iReport  con NetBeansLLamar reportes de iReport  con NetBeans
LLamar reportes de iReport con NetBeans
 
Sap Adobe Form
Sap Adobe FormSap Adobe Form
Sap Adobe Form
 
Automate user creation using sap gui scripting
Automate user creation using sap gui scriptingAutomate user creation using sap gui scripting
Automate user creation using sap gui scripting
 
Sql Server 2014 CTP2-Backup and Restore
Sql Server 2014 CTP2-Backup and RestoreSql Server 2014 CTP2-Backup and Restore
Sql Server 2014 CTP2-Backup and Restore
 
Bapi step-by-step
Bapi step-by-stepBapi step-by-step
Bapi step-by-step
 
Ejemplo LOGIN conectado a una base de datos
Ejemplo LOGIN conectado a una base de datosEjemplo LOGIN conectado a una base de datos
Ejemplo LOGIN conectado a una base de datos
 
Php with MYSQL Database
Php with MYSQL DatabasePhp with MYSQL Database
Php with MYSQL Database
 

Similar a ⭐Generación de reportes en múltiples formatos con jasper report e ireport

Similar a ⭐Generación de reportes en múltiples formatos con jasper report e ireport (20)

Jasperreports
JasperreportsJasperreports
Jasperreports
 
Universidad tecnológica de tehuacán datamart
Universidad tecnológica de tehuacán datamartUniversidad tecnológica de tehuacán datamart
Universidad tecnológica de tehuacán datamart
 
REPORTES
REPORTESREPORTES
REPORTES
 
Definiciones básicas-de-spss2
Definiciones básicas-de-spss2Definiciones básicas-de-spss2
Definiciones básicas-de-spss2
 
Repoteadores De Mysql2
Repoteadores De Mysql2Repoteadores De Mysql2
Repoteadores De Mysql2
 
Repoteadores De Mysql2
Repoteadores De Mysql2Repoteadores De Mysql2
Repoteadores De Mysql2
 
Componentes de sql server 2008
Componentes de sql server 2008Componentes de sql server 2008
Componentes de sql server 2008
 
IREPORT
IREPORTIREPORT
IREPORT
 
Manual de usuario caseware idea (imd)
Manual de usuario caseware idea (imd)Manual de usuario caseware idea (imd)
Manual de usuario caseware idea (imd)
 
Temario
Temario Temario
Temario
 
I report
I reportI report
I report
 
I report
I reportI report
I report
 
Reportes
ReportesReportes
Reportes
 
Ciclo De Vida
Ciclo De VidaCiclo De Vida
Ciclo De Vida
 
Ciclo De Vida
Ciclo De VidaCiclo De Vida
Ciclo De Vida
 
Java
JavaJava
Java
 
Manual visual fox pro
Manual visual fox proManual visual fox pro
Manual visual fox pro
 
Introducción a JasperReports
Introducción a JasperReportsIntroducción a JasperReports
Introducción a JasperReports
 
DiseñO De Base De Datos
DiseñO De Base De DatosDiseñO De Base De Datos
DiseñO De Base De Datos
 
Obvios herramientas de un SGDB
Obvios herramientas de un SGDBObvios herramientas de un SGDB
Obvios herramientas de un SGDB
 

Más de José Pedro Avila

Más de José Pedro Avila (20)

Caratula unt calculo
Caratula unt calculoCaratula unt calculo
Caratula unt calculo
 
Sociedad y cultura
Sociedad y culturaSociedad y cultura
Sociedad y cultura
 
Diapositivas
DiapositivasDiapositivas
Diapositivas
 
Cultura
CulturaCultura
Cultura
 
Casos de sociedad y cultura
Casos de sociedad y culturaCasos de sociedad y cultura
Casos de sociedad y cultura
 
Planilla de trabajadores
Planilla de trabajadoresPlanilla de trabajadores
Planilla de trabajadores
 
Costos predeterminados
Costos predeterminadosCostos predeterminados
Costos predeterminados
 
Triptico electrico2
Triptico electrico2Triptico electrico2
Triptico electrico2
 
Ejercicios 2
Ejercicios 2Ejercicios 2
Ejercicios 2
 
Ejercicios 1
Ejercicios 1Ejercicios 1
Ejercicios 1
 
Problemas capítulo 23 tipler p.a. - física para la ciencia y la tecnología ...
Problemas capítulo 23   tipler p.a. - física para la ciencia y la tecnología ...Problemas capítulo 23   tipler p.a. - física para la ciencia y la tecnología ...
Problemas capítulo 23 tipler p.a. - física para la ciencia y la tecnología ...
 
Problemas capítulo 21 tipler p.a. - física para la ciencia y la tecnología ...
Problemas capítulo 21   tipler p.a. - física para la ciencia y la tecnología ...Problemas capítulo 21   tipler p.a. - física para la ciencia y la tecnología ...
Problemas capítulo 21 tipler p.a. - física para la ciencia y la tecnología ...
 
Fisica viscosidad
Fisica viscosidadFisica viscosidad
Fisica viscosidad
 
Normalización y formatos 3 parte
Normalización y formatos 3 parteNormalización y formatos 3 parte
Normalización y formatos 3 parte
 
Normalización y formatos 1 parte
Normalización y formatos 1 parteNormalización y formatos 1 parte
Normalización y formatos 1 parte
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Perspectivas
PerspectivasPerspectivas
Perspectivas
 
Acotado
AcotadoAcotado
Acotado
 
Dinamica de-sistemas
Dinamica de-sistemasDinamica de-sistemas
Dinamica de-sistemas
 
Swift agrup finsentencias
Swift agrup finsentenciasSwift agrup finsentencias
Swift agrup finsentencias
 

Último

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 

Último (16)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 

⭐Generación de reportes en múltiples formatos con jasper report e ireport

  • 1. Generación de reportes en múltiples formatos con JasperReport e iReport Juan David Guarnizo Hernandez (juandavid794@gmail.com) Grupo de Investigación en Teleinformática con software de código abierto GITECX Facultad de Ciencias Básicas e Ingeniería Ingeniería de Sistemas Universidad de los Llanos Villavicencio, Colombia Introducción Cuando se desarrolla una aplicación esta no solo debe tener la capacidad de recolectar mucha información, sino que también debe organizarla y presentarla en usuario de una forma en que genere algún beneficio u ofrezca alguna información a tener en cuenta en el momento de toma de decisiones gerenciales o comerciales; sea por medio de gráficas o reportes dinámicos. Básicamente la generación de reportes se resumen en el diseño y mapeo de datos dentro de un layout definido. Dentro de ese contexto surgen herramientas que facilitan esta labor En el pasado esa área fue dominada por productos comerciales como "Crystal Report" que con el pasar del tiempo se hacia mas robusto integrando nuevas funcionalidades, en el día de hoy se cuenta con herramientas open-source que cumplen con el mismo objetivo, que también ofrecen facilidad y robustez que la herramientas comerciales, es el caso de JasperReport. JasperReport Es un poderoso framework open-source para la generación de reportes que presenta grandes habilidades en la organización y presentación de contenido en pantalla, impresora o en formatos como PDF, HTML, XLS, CSV y XML. Esta completamente escrito en Java y puede usarse en infinidad de aplicaciones web, distribuidas o de escritorio habilitadas para la generación dinámica de contenido. JasperReport organiza datos recuperados de una base de datos relacional a través de JDBC. iReport Aunque JasperReport es una librería que nos facilita el desarrollo, también se cuenta con una herramienta de diseño que se puede integrar con Netbeans, donde se diseña de forma gráfica los archivos XML que se define a través de etiquetas que obedece una estructura, vocabulario y restricciones declarados en una archivo DTD. Instalación Cuando se quiere implementar JasperReport en algunas aplicaciones debemos realizar procesos paralelos al desarrollo de la aplicación. Adelante presentare algunos ejemplo de diseño e implementación de esta herramienta desarrollado en iReport utilizado como Plug-in de Netbeans. Por lo tanto también explicaremos esta forma de instalación l. El primer paso que se debe hacer el momento de instalar cualquier aplicación en la plataforma de NetBeans es conseguir los archivos ".nbm" En el caso de "iReport" se pueden conseguir en la dirección http:/jasperforge.org/project/ireport, Es la pagina principal del proyecto y estos instaladores contienen incluidos las librerías de "JasperReport".
  • 2. eiRepott 2. Una vez en la pagina del proyecto iReport hay múltiples opciones de obtener la herramienta y múltiples 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. 3. Cuando se descarga iReport para trabajar en NetBeans se obtiene un archivo comprimido el cual al descomprimirse se obtienen los siguientes archivos. 'io de archivos iReport-4.O. '.nbm compone I .nbm nbm jasperserver•plugin- 4.O. I .nbm 4. Una vez se obtienen los archivos de instalación en NetBeans entramos a Herramientas —+ Complementos —+ Descargado —+ Agregar Plugin. Seleccionan los archivos de instalación y se procede a realizar la instalación. jaspe
  • 3. 5. En este punto NetBeans ya contiene las librerías de "JasperReport" y también tiene incorporado la herramienta de diseño de reportes iReport, la cual se relaciona directamente con una Base de Datos configurada en la barra de herramientas y también existe una nueva opción en la creación de archivos. Como Funciona?
  • 4. Principalmente debemos comprender que se inicia con un archivo XML donde las etiquetas difieren entre elementos como textos estáticos, textos dinámicos, imágenes y formas geométricas, también las etiquetas establecen las variables, campos, parámetros, posiciones y extensiones; dentro del diseño también se incluye la consulta a realizar en la base de datos, de donde se obtendrá la información que finalmente se mostrara en el reporte. Una vez creado nuestro diseño, este debe ser compilado, por lo cual se genera un archivo de extensión '.jasper", durante este proceso de compilación se verifica que la sintaxis del archivo XML para comprobar la consistencia del diseño.Una vez el diseño 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 Básicos de Diseño El diseño se representa en un "template" que va a ser utilizado por el motor de "JasperRepoft" para generar un reporte de acuerdo con la estructura y completando con la información obtenida de la base de datos. Cuando diseñamos un reporte debemos tener en cuenta que el "template" esta dividió Diseño Compilador JRDataSource
  • 5. principalmente en la siguientes secciones comúnmente llamadas "Band" o Bandas que cuando se genera el reporte con los datos, cada una de ella se comporta de forma diferente: Titie Page Header Column Header Detail 1 Column Footer Page Footer Last Page Footer Summary No Data Cuando diseñamos debemos tener en cuenta que estos reportes están 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 También es muy importante que "JasperReport" maneja tres tipos diferentes de variables para el manejo de los datos que son: Parámetros: Se le asigna su valor antes de que el reporte sea llamado, principalmente se utilizan para filtrar la información de la consulta a la base de datos o para obtener datos que no se encuentra fácilmente en la fuente de datos. Variables: Son utilizadas para realizar cálculos 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: SP {Nombre} para hacer referencia a algún parámetro previamente declarado SV {Nombre} para hacer referencia a alguna variable previamente declarado SF {Nombre} para hacer referencia a algún campo o columna previamente declarado Obteniendo estos conceptos básicos de diseño, procederemos a crear un ejemplo completo utilizando los anteriormente citado: version="1.O" 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="report name" pageWidth="595"
  • 6. pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"> <property name="ireport.zoom" <property name="ireport.x" <property name="ireport.y" <queryString> A.ldentificacion, A.Nombre Asistente, l.Nombre Institucion FROM Asistentes A, Instituciones I WHERE l.idlnstitucion = A.lnstitucion]]> </queryString> <field name="ldentificacion" class="java.lang.String"/> <field width="555" height="59"/> <textElement textAlignment="Center" verticalAlignment="Middle"> <font fontName="Arial" size-"40" Jornada del Software <band height="26"> <reportElement width="555" height="26"/> <textElement textAlignment="Center" verticalAlignment="Middle"> <font fontName="Arial" size-"20" </textElement> <columnHeader> <reportElement y="O" width-"82" <textElement textAlignment="Center" verticalAlignment= <reportElement x-"82" y="O" width-"254" <textElement textAlignment="Center" verticalAlignment= <font fontName="Arial" </textElement> <band height="20" <field
  • 7. </staticText> <reportElement x-"336" y="O" width-"219" <textElement textAlignment="Center" verticalAlignment="Middle"> <font fontName="Arial" </textElement> ereportElement x="82" width="254" <textElement textAlignment="Left" verticalAlignment="Middle" markup="none"> <font fontName="Arial" </textElement> <textFieldExpression <textElement textAlignment="Left" verticalAlignment="Middle" markup="none"> <font fontName="Arial" </textElement> <textFieldExpression </textField> <reportElement x="336" width="219" <textElement textAlignment="Left" verticalAlignment="Middle" markup="none"> <font fontName="Arial" </textElement> <textFieldExpression
  • 8. Generación del Reporte desde el código Java Observamos anteriormente la forma de diseñar un reporte con iReport iniciando desde lo mas simple. Ahora ya que aprendimos a diseñar y compilar el reporte, veremos como es llamado en reporte desde una clase Java indicándole los valores de las variables de tipo "Parámetro" y la fuente de donde obtendrá los datos, también debemos indicar en nuestra clase que tipo de salida obtendrá; es decir, si se exporta a un archivo, se hará una impresión o se mostrara en el JasperViewer. import java. sql. Connection; import java. sql. DriverManager; import java. util. HashMap;import java. util. Map; import net.sf.jasperreports. engine.JasperExportManager; import net.sf.jasperreports. engine.JasperFillManager; import net.sf.jasperreports. engine.JasperPrint; import net.sf.jasperreports. engine.JasperPrintManager; import net.sf.jasperreports. view.JasperViewer; public class EjemploJSL{ public static void main(String[] new EjemploJSL(); public EjemploJSL try{ Map Parametros — new HashMap(); JasperPrint Reporte — Parametros, this.getConnection()); JasperExportManager. exportReportToPdfFile(Reporte, "archivo.pdf"); JasperExportManager.exportReportTOHtmlFile(Reporte, "archivo.html"); JasperPrintManager.printReport(Reporte, true); JasperViewer. viewReport(Reporte); catch(Exception
  • 9. try{ Connection Conn = return(Conn); private