Está en la página 1de 64

Generacin de Informes

i d l Ingeniera de la
Programacin g
Prctica 9
1
J asperReport: librera J ava para el desarrollo de informes
iReport: Herramienta para el diseo visual de informes J asperReport
Aplicacin J ava
Di I f
(Eclipse)
Diseo Informe
(iReport)
Informejasper
J asperReport.jar
2
Informe.jasper
p p j
Conexin J ava-J asperReport
Contenido
iReport
Qu es iReport?
Primeros pasos
Configuracin Configuracin
Crear Conexin JDBC
Uso del Asistente
Aspectos Avanzados en el Diseo de Informes
Informes parametrizados
S bi f Subinformes
JasperReport
Q e J pe Repo t? Qu es JasperReport?
Configuracin de eclipse
Visualizando informes desde java
3
Visualizando informes desde java
iReport
Qu es iReport?
4
iReport -Qu es iReport?
Utilidad Opensource para crear informes
Implementado 100% en J ava
Genera informes J asperReports
Editor WYSIWYG (What You See Is What You Get)
Soporta todas las bases de datos accesibles por J DBC
Sun J ava 2 SDK 1 4 o superior . Sun J ava 2 SDK 1.4 o superior
5
iReport -Qu es iReport?
Proyecto IReport:
http://sourceforge.net/projects/ireport p // g /p j / p
Descarga Binarios:
http://sourceforge.net/project/showfiles.php?group_id=64348
T t i l (E i l ) Tutoriales (En ingls):
http://sourceforge.net/docman/?group_id=64348
Foros de Ayuda (En ingls. Es necesario registrarse)
http://sourceforge net/forum/forum php?forum id=217623 http://sourceforge.net/forum/forum.php?forum_id=217623
http://sourceforge.net/forum/forum.php?forum_id=217622
6
iReport
Primeros Pasos
7
iReport - Primeros pasos
Configuracin
Menu Options >Opciones Menu Options->Opciones
8
iReport - Primeros pasos
Configuracin
4
3 2 1
1. Propiedades del entorno 1. Propiedades del entorno
Indicamos el Look & feel, idioma, opciones por defecto, etc
2 Directorios del compilador 2. Directorios del compilador
Directorio donde se encuentra el compilador de informes,
donde se almacenan los informes generados etc donde se almacenan los informes generados, etc.
3. Opciones de Backup
9
4. Programas externos
Podemos utilizar otros programas para visualizar informes
iReport - Primeros pasos
Configuracin
Directorio de Compilacin Directorio de Compilacin
Indicadondese Indica donde se
guardan los ficheros
*.jasper
(importante saberlo
porque luego se
cargan desde J ava)
10
iReport - Primeros pasos
Conexin con Hibernate
Data > Conexiones / Fuentes de datos Data -> Conexiones / Fuentes de datos
11
iReport Primeros pasos
Crear la conexin a la fuente de datos
1 Creamos la conexin 1 Creamos la conexin
Conexin JDBC
Segundo: Nombre de g
la Conexin y URL
Primero:
ConexinBDJ DBC
Tercero: probar la conexin
12
Conexin BD J DBC
iReport - Primeros pasos
Crear la Conexin a la fuente de datos
1 Creamos la Conexin 1 Creamos la Conexin
Conexin Hibernate
2: Nombre de
la conexin
1: Tipo:
ConexinHibernate
13
Conexin Hibernate
iReport - Primeros pasos
Crear Conexin Hibernate
2 Modificamos el Classpath p
Incluimos:
-la librera hsqldb.jar
Di t i 'd t ' d d t l bdd h lbd -Directorio 'data' donde se encuentra la bd de hsqlbd
Si es una conexin Hibernate aadir adems los paths:
Directorio de archivos fuentes (src) de nuestro proyecto
14
Directorio de archivos binarios (bin)
Directorio donde estn los mappings
Directorio donde est el archivo hibernate.cfg.xml
iReport - Primeros pasos
Crear Conexin Hibernate
3 Reemplazamos la librera de conexin
HSQLDB i IR t a HSQLDB que viene en IReport
IREPORT\lib\hsqldb 1 7 1 jar IREPORT\lib\hsqldb-1.7.1.jar
Por la que viene con HSQLDB: Por la que viene con HSQLDB:
HSQLDB\lib\hsqldb.jar HSQLDB\lib\hsqldb.jar
Manteniendo el nombre existente (hsqldb- ( q
1.7.1.jar)
15
iReport - Primeros pasos
Primer informe: Uso del Asistente
iReport proporcina un asistente que nos facilita la iReport proporcina un asistente que nos facilita la
creacin de informes sencillos
Fichero-> Mago de Informes Fichero > Mago de Informes
5 pasos: 5 pasos:
1 Seleccionar conexin y definir consulta SQL
2 Seleccionar campos p
3 Indicar si se agrupa por algn campo
4 Definir apariencia (Layout)
5 Finalizar asistente
Nota: Antes recuerde arrancar el HSQLDB
16
Nota: Antes, recuerde arrancar el HSQLDB
iReport - Primeros pasos
Primer informe: Uso del Asistente
1 Seleccionar conexin y definir consulta SQL
1:Nombre de
la Conexin la Conexin
2C l 2:Consulta
SQL
17
iReport - Primeros pasos
Primer informe: Uso del Asistente
2 Seleccionar campos
3Indicar si seagrupapor algncampo 3 Indicar si se agrupa por algn campo
Atributosde
Atributos que
18
Atributos de
la consulta
aparecen en el
informe
iReport - Primeros pasos
Primer informe: Uso del Asistente
4 Definir apariencia (Layout)
Columna: para cada registro un
campo bajo de otro
T b l d i
5Finalizar asistente
Tabular: para cada registro un campo
al lado del otro
5 Finalizar asistente
Plantilla para los
19
aspectos estticos
iReport - Primeros pasos
Primer informe: Uso del Asistente
Al finalizar obtenemos el diseo del informe Al finalizar obtenemos el diseo del informe
20
iReport - Primeros pasos
Primer informe: Uso del Asistente
Para visualizar el informe: Para visualizar el informe:
Construir -> Ejecutar informe (usando conexin activa)
Guardar adems el diseo en un documento xml Guardar adems el diseo en un documento xml
21
iReport - Primeros pasos
Primer report: con Conexin Hibernate
1 Seleccionar la fuente de datos y definir una
consulta HQL
1: Conexin
Hibernate
2: consulta
HQL
22
iReport - Primeros pasos
Primer report: con Conexin Hibernate
P d i bi l ti b i Puede ser necesario cambiar los tipos bsicos por
clases (p.e. int java.lang.Integer)
23
iReport
Aspectos Avanzados en el Diseo de Informes
24
iReport - Aspectos Avanzados en el Diseo de Informes
Crear un informe nuevo:
Fichero -> nuevo documento
Nombre del informe
Fichero -> nuevo documento
Tamao del papel
Orientacin Orientacin
Mrgenes, columnas, etc.
25
Modificar Propiedades: Editar -> Propiedades del Informe
iReport - Aspectos Avanzados en el Diseo de Informes
Definer la consulta a la BD: Datos -> Consulta
de informe de informe
Escriba una consulta SQL y pulse 'Leer Campos' para ejecutarl
Consulta
26
SQL
iReport - Aspectos Avanzados en el Diseo de Informes
Tambin puede construir la consulta en el Diseador de Consultas.
27
iReport - Aspectos Avanzados en el Diseo de Informes
Consultas en conexiones Hibernate:
4S l i l 4 Seleccionamos los
atributos a incluir en el
informe, pudiendo
d
1 Creamos Consulta
HQL
navegar a travs de
aquellos que sean objetos
HQL
2 La ejecutamos
3 Borramos atributos
28
iReport - Aspectos Avanzados en el Diseo de Informes
Archivos
Abiertos
Ventana de
propiedades
Estructura del Documento
Librera de
29
Zona de Diseo
(Elementos definidos)
Elementos
iReport - Aspectos Avanzados en el Diseo de Informes
Cada informe se divide en 7 secciones:
30
iReport - Aspectos Avanzados en el Diseo de Informes
Cada informe se divide en 7 secciones (bandas):
1. Ttulo: Define el ttulo del informe. Se imprime una nica
vez al inicio del informe. Puede imprimirse en una pgina p p g
separada.
2 Cabecera de Pgina: Define una cabecera para las 2. Cabecera de Pgina: Define una cabecera para las
pginas del informe. Se imprime una vez por pgina. Todas
las pginas del informe presentan la misma cabecera de
pgina.
3 Cabecera de Columna: Define la cabecera de cada una 3. Cabecera de Columna: Define la cabecera de cada una
de las columnas de la seccin detalle. Generalmente, se usa
para indicar el nombre de los atributos listados en la seccin
detalle
31
detalle .
iReport - Aspectos Avanzados en el Diseo de Informes
Cada informe se divide en 7 secciones (bandas):
4. Detalle: en esta seccin se define el diseo con el que se
muestra cada registro de la base de datos. Se imprime
i tantas veces como registros se recuperen.
5 Pie de Columna: Esta seccin aparece al final de cada 5. Pie de Columna: Esta seccin aparece al final de cada
columna definida en la seccin detalle.
6. Pie de Pgina: Esta seccin aparece al final de cada
pgina del informe.
7. Resumen: Esta seccin aparece al final del informe.
Generalmente se usa para presentar informacin resumida o
ibl d t t d ti
32
posibles datos estadsticos.
iReport - Aspectos Avanzados en el Diseo de Informes
Elementos de un Informe:
Elementos Grficos: Elementos Grficos:
Lnea: dibuja una lnea en el informe
Cuadrado: dibuja un cuadrado en el informe Cuadrado: dibuja un cuadrado en el informe
Elipse: dibuja una elipse en el informe
Elementos de Texto:
Texto esttico: muestra un texto esttico en el informe
Campo de texto: muestra el texto obtenido a partir de una
expresin java expresin java
Sub-Informes: incluye un informe ya existente
Elementos Especiales: Elementos Especiales:
Cdigo de barras: genera un cdigo de barras
Grficas: permite crear una grfica de datos
33
Grficas: permite crear una grfica de datos
iReport - Aspectos Avanzados en el Diseo de Informes
Elementos de un Informe:
Elipse
Campo
d T t
Cdigo de
Barras Elipse
de Texto
Barras
Grfica
Lnea
Cuadrado
Texto
Esttico
Imagen
Marco
SubInforme
Esttico
34
iReport - Aspectos Avanzados en el Diseo de Informes
Campos de Texto: muestra el texto obtenido a partir
de una expresin java p j
String
Resultado de Operaciones Matemticas Resultado de Operaciones Matemticas
Valor devuelto por funciones Java
Parmetros o Variables Parmetros o Variables
Campos de la conexin de datos
Nos permite visualizar la informacin
d d l b d d extrada de la base de datos.
35
iReport - Aspectos Avanzados en el Diseo de Informes
Propiedades del
Campo de Texto
Expresin J ava
p
Campo de BD:
$F{NombreCampo} $F{NombreCampo}
Seleccionar de la Lista
TextField->Expression
36
iReport - Aspectos Avanzados en el Diseo de Informes
Campos de Texto
Se pueden aadir campos de texto asociados a campos p p p
de la BD, Parmetros y Variables arrastrando a la zona
de diseo los elementos de la Librera
37
iReport - Aspectos Avanzados en el Diseo de Informes
Ejemplo:
Ttulo Ttulo
Cabecera
dePgina de Pgina
Detalle
Pie de
Pgina Pgina
38
iReport - Aspectos Avanzados en el Diseo de Informes
Ejemplo:
C b d
Titulo
Cabecera de
Pgina
Detalle
Pie
39
iReport - Aspectos Avanzados en el Diseo de Informes
Ejemplo:
L
Campos de Texto
Texto Esttico
Lneas
Asociados a la BD
Campos de Texto
Campos de Texto Asociados a
40
p
Asociados a Variables
p
Funciones J ava
iReport - Aspectos Avanzados en el Diseo de Informes
Ejemplo:
Lneas
Texto Esttico
Campos de Texto
Asociados a la BD
Campos de Texto
Campos de Texto
Asociados a Variables
Asociados a
Funciones J ava
41
iReport - Aspectos Avanzados en el Diseo de Informes
Parmetros:
Son valores enviados al informe desde un programa externo
Definicin:
Men Contextual
Estructura del
Documento:
add-> Parameter
42
iReport - Aspectos Avanzados en el Diseo de Informes
Parmetros:
Se suelen utilizar para parametrizar la consulta SQL
asociadaalafuentededatos asociada a la fuente de datos
$P {NombreParmetro}
43
iReport - Aspectos Avanzados en el Diseo de Informes
Variables:
Son objetos usados para almacenar el resultado de calculos
como subtotales, sumas, etc.
Definicin:
Men Contextual Estructura del Documento :
add-> Variable
Nombre de
la Variable
Tipo de la
Variable
44
iReport - Aspectos Avanzados en el Diseo de Informes
Variables: Existen Variables Predefinidas
PAGE NUMBER: nmerodepginasdel informe PAGE_NUMBER: nmero de pginas del informe
COLUMN_NUMBER: nmero de columnas
REPORT_COUNT: nmero de registros por la consulta asociada al
origen de datos
PAGE_COUNT: nmero de registros mostrados en la pgina actual
COLUMNS COUNT: nmeroderegistrosmostradosenlacolumna COLUMNS_COUNT: nmero de registros mostrados en la columna
actual
Acceso al Valor de una Variable:
45
Acceso al Valor de una Variable:
Campo de Texto -> $V {NombreVariable}
iReport - Aspectos Avanzados en el Diseo de Informes
Ejemplo:
f P li l h from Pelicula p where
p.genero.nombregenero=${GENERO}
46
iReport - Aspectos Avanzados en el Diseo de Informes
Subinformes
Se utilizan para crear diseos Maestro Detalle a Se utilizan para crear diseos Maestro-Detalle a
partir de relaciones 1 a muchos
Ejemplo: Ejemplo:
Director
(Maestro)
Lista de Peliculas
(Detalle) ( )
47
iReport - Aspectos Avanzados en el Diseo de Informes
Subinformes
Se crean dos informes por separado Se crean dos informes por separado
Uno para el detalle
Otro para el maestro Otro para el maestro
La consulta del informe detalle se define La consulta del informe detalle se define
parametrizada
f r omPel i cul a p wher e p. gener o. nombr egener o =
$P{GENERO}
Se incluye el detalle como subinforme del maestro
y se le pasa el parmetro correspondiente
48
y se le pasa el parmetro correspondiente
iReport - Aspectos Avanzados en el Diseo de Informes
Subinformes
Para incluir un informe como subinforme se crea un Para incluir un informe como subinforme se crea un
componente subinforme dentro de la seccin detalle del
maestro
Seleccionamos usar un informe existente
Seleccionamos el fichero correspondiente al informe detalle p
Pulsamos en Siguiente
49
iReport - Aspectos Avanzados en el Diseo de Informes
Subinformes
Indicamos que se utilice para el subinforme la misma Indicamos que se utilice para el subinforme la misma
conexin que se utiliza en el informe maestro
Pulsamos en Siguiente
50
iReport - Aspectos Avanzados en el Diseo de Informes
Subinformes
Indicamos la expresin definida en el maestro que se va a Indicamos la expresin definida en el maestro que se va a
utilizar para dar valor al parmetro definido en el
subinforme
P l T i Pulsamos en Terminar
Expresin en
el Maestro
P Parmetro
subinforme
51
iReport - Aspectos Avanzados en el Diseo de Informes
Subinformes
Una ltima modificacin manual necesaria para que se Una ltima modificacin manual necesaria para que se
visualicen los subinformes
new HashMap( $P{REPORT PARAMETERS MAP}) _ _
boton derecho->
P i d d Propiedades
52
iReport - Aspectos Avanzados en el Diseo de Informes
Subinformes en relaciones muchos-a-
muchos muchos
La consulta en el subinforme debe cambiarse.
Por ejemplo, para listar todas las pelculaspor director j p , p p p
(desde la relacin Pelicula-Director):
Consulta en el informe Maestro:
from Director d from Director d
Lista de campos de Director: iddirector, nombre
Consulta en el subinforme:
from Pelicula p where $P{NOMBRE} IN p directores nombre from Pelicula p where $P{NOMBRE} IN p.directores.nombre
Lista de campos de Pelicula: titulo, fecha
Aqu directores es el conjunto definido en la clase Pelicula que guarda Aqu, directores es el conjunto definido en la clase Pelicula que guarda
las instancias de directores de una pelcula.
53
J asperReport
Qu es J asperReport?
54
J asperReport - Qu es J asperReport?
Librera Java para la creacin de informes
OpenSource
Generacin de informes en archivos PDF, HTML,
XLS, CSV y XML.
Se pueden utilizar diversos orgenes de datos:
JDBC TableModels JavaBeans XML Hibernate JDBC, TableModels, JavaBeans XML, Hibernate,
and CSV.
Puede ser incluida en cualquier proyecto Java
(incluyendo J2EE y Aplicaciones Web)
55
J asperReport - Qu es J asperReport?
Documentacin y Libreria (Registrado):
http://jasperforge org/sf/projects/jasperreports http://jasperforge.org/sf/projects/jasperreports
API:
http://jasperreports.sourceforge.net/api/
56
J asperReport
Configuracin de Eclipse
57
J asperReport - Configuracin de Eclipse
Incluir la librera JasperReport en el proyecto Eclipse
jasperreports-1.2.2.jar
Project ->Properties ->Java Build Path-> Libraries
58
J asperReport - Configuracin de Eclipse
Incluir adems las siguientes libreras:
Jakarta Commons Digester Component (versin 1.1 o
posterior) posterior)
http://jakarta.apache.org/commons/digester/
commons-digester.jar
Jakarta Commons BeanUtils Component (versin 1.1 o
posterior)
http://jakarta.apache.org/commons/beanutils/
b il j commons-beanutils.jar
Jakarta Commons Collections Component (versin 1.0 o
posterior) posterior)
http://jakarta.apache.org/commons/collections/
commons-collections.jar
Jakarta Commons Logging Component (versin 1.0 o posterior)
http://jakarta.apache.org/commons/logging/
commons-logging.jar
59
commons logging.jar
Tambin disponibles en el direcotrio /lib de iReport
J asperReport
Visualizando informes desde Hibernate
60
J asperReport - Visualizando informes desde Hibernate
La comunicacin entre IReport y JasperReport se lleva a cabo a
travs de un conjunto de parmetros definidos en un objeto
HashMap HashMap
Cuatro Pasos
1. Creacin de Objetos
Sessi on sesion=
Ut i l i dadHi ber nat e get Sessi onFact or y( ) openSessi on( ) ;

Ut i l i dadHi ber nat e. get Sessi onFact or y( ) . openSessi on( ) ;
HashMap parametros = new HashMap( ) ;
2. Definicin de Parmetros
/ / Obl i gat or i o: Pasamos l a f uent e de dat os ( sesi n Hi ber nat e)
par amet r os put ( J RHi ber nat eQuer yExecut er Fact or y PARAMETER par amet r os. put ( J RHi ber nat eQuer yExecut er Fact or y. PARAMETER_
HIBERNATE_SESSION, sesi on) ;
/ / Opci onal es: par met r os del i nf or me
61
/ / p p
par amet er Map. put ( "gener o", "Comedi a") ;
J asperReport - Visualizando informes desde Hibernate
3. Paso de Parametros al informe
St r i ng f i l eName= "r epor t s/ Repor t Par amet r os j asper "; St r i ng f i l eName= "r epor t s/ Repor t Par amet r os. j asper ";
J asper Pr i nt i nf or me=
J asper Fi l l Manager . fillReport( f i l eName,
par amet er Map) ;
4. Visualizacin del Informe
par amet er Map) ;
J asper Vi ewer . viewReport( i nf or me, f al se) ;
62
J asperReport - Visualizando informes desde java
Ejemplo Completo (ejecuta el informe de la pgina 46)
..
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.query.JRHibernateQueryExecuterFactory;
import net.sf.jasperreports.view.JasperViewer;
import net.sf.jasperreports.engine.JRException;
..
JasperPrint informe = null;
Session sesion= UtilidadHibernate.getSessionFactory().openSession();
HashMap parametros = new HashMap();
parametros.put(JRHibernateQueryExecuterFactory.
PARAMETER_HIBERNATE_SESSION,sesion);
parametros.put("genero","Comedia");
try {
String fileName= "reports/ReportParametros.jasper";
informe= JasperFillManager.fillReport(fileName, parametros);
}
63
catch (JRException e){e.printStackTrace();}
JasperViewer.viewReport(informe,false);
J asperReport - Visualizando informes desde java
Para obtener ms informacin consultar el API de las
siguientes clases:
JRHibernateQueryExecuterFactory:
http://jasperreports sourceforge net/api/net/sf/jasperreports/engine/qu http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/qu
ery/JRHibernateQueryExecuterFactory.html
JasperReport:
http://jasperreports sourceforge net/api/net/sf/jasperreports/engine/Jas http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/Jas
perReport.html
JasperFillManager:
http://jasperreports sourceforge net/api/net/sf/jasperreports/engine/Jas http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/Jas
perFillManager.html
JasperPrint:
http://jasperreports sourceforge net/api/net/sf/jasperreports/engine/Jas http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/Jas
perPrint.html
JasperViewer:
http://jasperreports sourceforge net/api/net/sf/jasperreports/view/JRVie
64
http://jasperreports.sourceforge.net/api/net/sf/jasperreports/view/JRVie
wer.html

También podría gustarte