Este documento proporciona información sobre la generación de informes con JasperReport y la herramienta iReport. Explica qué es iReport, los primeros pasos de configuración e implementación, y aspectos avanzados del diseño de informes como la creación de parámetros, variables y subinformes.
2. • JasperReport: librería Java para el desarrollo de informes
• iReport: Herramienta para el diseño visual de informes JasperReport
Aplicación Java
Di ñ I f (Eclipse)Diseño Informe
(iReport)
Informe jasper JasperReport.jar
2
Informe.jasper p p j
Conexión Java-JasperReport
3. Contenido
iReport
é¿Qué es iReport?
Primeros pasos
ConfiguraciónConfiguración
Crear Conexión JDBC
Uso del Asistente
Aspectos Avanzados en el Diseño de Informes
Informes parametrizados
S bi fSubinformes
JasperReport
¿Q é e J pe Repo t?¿Qué es JasperReport?
Configuración de eclipse
Visualizando informes desde java
3
Visualizando informes desde java
5. iReport -¿Qué es iReport?
• Utilidad Opensource para crear informes
• Implementado 100% en Java
• Genera informes JasperReports
• Editor WYSIWYG (What You See Is What You Get)
• Soporta todas las bases de datos accesibles por JDBC
Sun Java 2 SDK 1 4 o superior•. Sun Java 2 SDK 1.4 o superior
5
6. iReport -¿Qué es iReport?
Proyecto IReport:
http://sourceforge.net/projects/ireportp // g /p j / p
Descarga Binarios:
http://sourceforge.net/project/showfiles.php?group_id=64348
T t i l (E i lé )Tutoriales (En inglés):
http://sourceforge.net/docman/?group_id=64348
Foros de Ayuda (En inglés. Es necesario registrarse)
http://sourceforge net/forum/forum php?forum id=217623http://sourceforge.net/forum/forum.php?forum_id=217623
http://sourceforge.net/forum/forum.php?forum_id=217622
6
8. iReport - Primeros pasos
Configuración
Menu Options >OpcionesMenu Options->Opciones
8
9. iReport - Primeros pasos
Configuración
4321
1.Propiedades del entorno1.Propiedades del entorno
• Indicamos el Look & feel, idioma, opciones por defecto, etc
2 Directorios del compilador2.Directorios del compilador
• Directorio donde se encuentra el compilador de informes,
donde se almacenan los informes generados etcdonde se almacenan los informes generados, etc.
3.Opciones de Backup
9
4.Programas externos
• Podemos utilizar otros programas para visualizar informes
10. iReport - Primeros pasos
Configuración
Directorio de CompilaciónDirectorio de Compilación
Indica donde seIndica donde se
guardan los ficheros
*.jasper
(importante saberlo
porque luego se
cargan desde Java)
10
11. iReport - Primeros pasos
Conexión con Hibernate
Data > Conexiones / Fuentes de datosData -> Conexiones / Fuentes de datos
11
12. iReport – Primeros pasos
Crear la conexión a la fuente de datos
1º Creamos la conexión1 Creamos la conexión
Conexión JDBC
Segundo: Nombre deg
la Conexión y URL
Primero:
Conexión BD JDBC
Tercero: probar la conexión
12
Conexión BD JDBC
13. iReport - Primeros pasos
Crear la Conexión a la fuente de datos
1º Creamos la Conexión1º Creamos la Conexión
Conexión Hibernate
2º: Nombre de
la conexión
1º: Tipo:
Conexión Hibernate
13
Conexión Hibernate
14. iReport - Primeros pasos
Crear Conexión Hibernate
2º Modificamos el Classpathp
Incluimos:
-la librería hsqldb.jar
Di t i 'd t ' d d t l bd d h lbd-Directorio 'data' donde se encuentra la bd de hsqlbd
Si es una conexión Hibernate añadir además los paths:
Directorio de archivos fuentes (src) de nuestro proyecto
14
Directorio de archivos binarios (bin)
Directorio donde están los mappings
Directorio donde está el archivo hibernate.cfg.xml
15. iReport - Primeros pasos
Crear Conexión Hibernate
3º Reemplazamos la librería de conexión
HSQLDB i IR ta HSQLDB que viene en IReport
IREPORTlibhsqldb 1 7 1 jarIREPORTlibhsqldb-1.7.1.jar
Por la que viene con HSQLDB:Por la que viene con HSQLDB:
HSQLDBlibhsqldb.jarHSQLDBlibhsqldb.jar
Manteniendo el nombre existente (hsqldb-( q
1.7.1.jar)
15
16. iReport - Primeros pasos
Primer informe: Uso del Asistente
iReport proporcina un asistente que nos facilita laiReport proporcina un asistente que nos facilita la
creación de informes sencillos
Fichero-> Mago de InformesFichero > Mago de Informes
5 pasos:5 pasos:
1º Seleccionar conexión y definir consulta SQL
2º Seleccionar camposp
3º Indicar si se agrupa por algún campo
4º Definir apariencia (Layout)
5º Finalizar asistente
Nota: Antes recuerde arrancar el HSQLDB
16
Nota: Antes, recuerde arrancar el HSQLDB
17. iReport - Primeros pasos
Primer informe: Uso del Asistente
1º Seleccionar conexión y definir consulta SQL
1º:Nombre de
la Conexiónla Conexión
2º C l2º:Consulta
SQL
17
18. iReport - Primeros pasos
Primer informe: Uso del Asistente
2º Seleccionar campos
3º Indicar si se agrupa por algún campo3 Indicar si se agrupa por algún campo
Atributos de Atributos que
18
Atributos de
la consulta aparecen en el
informe
19. 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
5º Finalizar asistente
Tabular: para cada registro un campo
al lado del otro
5 Finalizar asistente
Plantilla para los
19
aspectos estéticos
20. iReport - Primeros pasos
Primer informe: Uso del Asistente
Al finalizar obtenemos el diseño del informeAl finalizar obtenemos el diseño del informe
20
21. iReport - Primeros pasos
Primer informe: Uso del Asistente
Para visualizar el informe:Para visualizar el informe:
Construir -> Ejecutar informe (usando conexión activa)
Guardará además el diseño en un documento xmlGuardará además el diseño en un documento xml
21
22. iReport - Primeros pasos
Primer report: con Conexión Hibernate
1º Seleccionar la fuente de datos y definir una
consulta HQL
1º: Conexión
Hibernate
2º: consulta
HQL
22
23. iReport - Primeros pasos
Primer report: con Conexión Hibernate
P d i bi l ti bá iPuede ser necesario cambiar los tipos básicos por
clases (p.e. int java.lang.Integer)
23
25. iReport - Aspectos Avanzados en el Diseño de Informes
Crear un informe nuevo:
Fichero -> nuevo documento
Nombre del informe
Fichero -> nuevo documento
•Tamaño del papel
•OrientaciónOrientación
•Márgenes, columnas, etc.
25
Modificar Propiedades: Editar -> Propiedades del Informe
26. iReport - Aspectos Avanzados en el Diseño de Informes
Definer la consulta a la BD: Datos -> Consulta
de informede informe
Escriba una consulta SQL y pulse 'Leer Campos' para ejecutarl
Consulta
26
SQL
27. iReport - Aspectos Avanzados en el Diseño de Informes
También puede construir la consulta en el Diseñador de Consultas.
27
28. iReport - Aspectos Avanzados en el Diseño de Informes
Consultas en conexiones Hibernate:
4º S l i l4º Seleccionamos los
atributos a incluir en el
informe, pudiendo
d
1º Creamos Consulta
HQL
navegar a través de
aquellos que sean objetos
HQL
2º La ejecutamos
3º Borramos atributos
28
29. iReport - Aspectos Avanzados en el Diseño de Informes
Archivos
Abiertos Ventana de
propiedades
Estructura del Documento Librería de
29Zona de Diseño
(Elementos definidos) Elementos
30. iReport - Aspectos Avanzados en el Diseño de Informes
Cada informe se divide en 7 secciones:
30
31. iReport - Aspectos Avanzados en el Diseño de Informes
Cada informe se divide en 7 secciones (bandas):
1. Título: Define el título del informe. Se imprime una única
vez al inicio del informe. Puede imprimirse en una páginap p g
separada.
2 Cabecera de Página: Define una cabecera para las2. Cabecera de Página: Define una cabecera para las
páginas del informe. Se imprime una vez por página. Todas
las páginas del informe presentan la misma cabecera de
ápágina.
3 Cabecera de Columna: Define la cabecera de cada una3. Cabecera de Columna: Define la cabecera de cada una
de las columnas de la sección detalle. Generalmente, se usa
para indicar el nombre de los atributos listados en la sección
‘detalle’
31
detalle .
32. iReport - Aspectos Avanzados en el Diseño de Informes
Cada informe se divide en 7 secciones (bandas):
4. Detalle: en esta sección se define el diseño con el que se
muestra cada registro de la base de datos. Se imprime
itantas veces como registros se recuperen.
5 Pie de Columna: Esta sección aparece al final de cada5. Pie de Columna: Esta sección aparece al final de cada
columna definida en la sección detalle.
6. Pie de Página: Esta sección aparece al final de cada
página del informe.
7. Resumen: Esta sección aparece al final del informe.
Generalmente se usa para presentar información resumida o
ibl d t t dí ti
32
posibles datos estadísticos.
33. iReport - Aspectos Avanzados en el Diseño de Informes
Elementos de un Informe:
Elementos Gráficos:Elementos Gráficos:
Línea: dibuja una línea en el informe
Cuadrado: dibuja un cuadrado en el informeCuadrado: dibuja un cuadrado en el informe
Elipse: dibuja una elipse en el informe
Elementos de Texto:
Texto estático: muestra un texto estático en el informe
Campo de texto: muestra el texto obtenido a partir de una
expresión javaexpresión java
Sub-Informes: incluye un informe ya existente
Elementos Especiales:Elementos Especiales:
Código de barras: genera un código de barras
Gráficas: permite crear una gráfica de datos
33
Gráficas: permite crear una gráfica de datos
34. iReport - Aspectos Avanzados en el Diseño de Informes
Elementos de un Informe:
Elipse
Campo
d T t
Código de
BarrasElipse de Texto Barras
Gráfica
Línea
Cuadrado Texto
Estático
Imagen Marco
SubInforme
Estático
34
35. iReport - Aspectos Avanzados en el Diseño de Informes
Campos de Texto: muestra el texto obtenido a partir
de una expresión javap j
String
Resultado de Operaciones MatemáticasResultado de Operaciones Matemáticas
Valor devuelto por funciones Java
Parámetros o VariablesParámetros o Variables
Campos de la conexión de datos
Nos permite visualizar la información
íd d l b d dextraída de la base de datos.
35
36. iReport - Aspectos Avanzados en el Diseño de Informes
Propiedades del
Campo de Texto
Expresión Java
p
Campo de BD:
$F{NombreCampo}$F{NombreCampo}
Seleccionar de la Lista
TextField->Expression
36
37. iReport - Aspectos Avanzados en el Diseño de Informes
Campos de Texto
Se pueden añadir campos de texto asociados a camposp p p
de la BD, Parámetros y Variables arrastrando a la zona
de diseño los elementos de la Librería
37
38. iReport - Aspectos Avanzados en el Diseño de Informes
Ejemplo:
TítuloTítulo
Cabecera
de Páginade Página
Detalle
Pie de
PáginaPágina
38
39. iReport - Aspectos Avanzados en el Diseño de Informes
Ejemplo:
C b d
Titulo
Cabecera de
Página
Detalle
Pie
39
40. iReport - Aspectos Avanzados en el Diseño de Informes
Ejemplo:
Lí
Campos de Texto
Texto Estático
Líneas Asociados a la BD
Campos de TextoCampos de Texto Asociados a
40
p
Asociados a Variables
p
Funciones Java
41. iReport - Aspectos Avanzados en el Diseño de Informes
Ejemplo: Líneas
Texto Estático
Campos de Texto
Asociados a la BD
Campos de Texto
Campos de Texto
Asociados a Variables
Asociados a
Funciones Java
41
42. iReport - Aspectos Avanzados en el Diseño de Informes
Parámetros:
Son valores enviados al informe desde un programa externo
Definición:
Menú Contextual
Estructura del
Documento:
add-> Parameter
42
43. iReport - Aspectos Avanzados en el Diseño de Informes
Parámetros:
Se suelen utilizar para parametrizar la consulta SQL
asociada a la fuente de datosasociada a la fuente de datos
$P {NombreParámetro}
43
44. iReport - Aspectos Avanzados en el Diseño de Informes
Variables:
Son objetos usados para almacenar el resultado de calculos
como subtotales, sumas, etc.
Definición:
Menú Contextual Estructura del Documento :
add-> Variable
Nombre de
la Variable
Tipo de la
Variable
44
45. iReport - Aspectos Avanzados en el Diseño de Informes
Variables: Existen Variables Predefinidas
PAGE NUMBER: número de páginas del informePAGE_NUMBER: número de páginas del informe
COLUMN_NUMBER: número de columnas
REPORT_COUNT: número de registros por la consulta asociada al
origen de datos
PAGE_COUNT: número de registros mostrados en la página actual
COLUMNS COUNT: número de registros mostrados en la columnaCOLUMNS_COUNT: número 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}
46. iReport - Aspectos Avanzados en el Diseño de Informes
Ejemplo:
f P li l hfrom Pelicula p where
p.genero.nombregenero=${GENERO}
46
47. iReport - Aspectos Avanzados en el Diseño de Informes
Subinformes
Se utilizan para crear diseños Maestro Detalle aSe utilizan para crear diseños Maestro-Detalle a
partir de relaciones 1 a muchos
Ejemplo:Ejemplo:
Director
(Maestro)
Lista de Peliculas
(Detalle)( )
47
48. iReport - Aspectos Avanzados en el Diseño de Informes
Subinformes
Se crean dos informes por separadoSe crean dos informes por separado
Uno para el detalle
Otro para el maestroOtro para el maestro
La consulta del informe detalle se defineLa consulta del informe detalle se define
parametrizada
from Pelicula p where p.genero.nombregenero =
$P{GENERO}
Se incluye el detalle como subinforme del maestro
y se le pasa el parámetro correspondiente
48
y se le pasa el parámetro correspondiente
49. iReport - Aspectos Avanzados en el Diseño de Informes
Subinformes
Para incluir un informe como subinforme se crea unPara incluir un informe como subinforme se crea un
componente subinforme dentro de la sección detalle del
maestro
Seleccionamos “usar un informe existente”
Seleccionamos el fichero correspondiente al informe detallep
Pulsamos en Siguiente
49
50. iReport - Aspectos Avanzados en el Diseño de Informes
Subinformes
Indicamos que se utilice para el subinforme la mismaIndicamos que se utilice para el subinforme la misma
conexión que se utiliza en el informe maestro
Pulsamos en Siguiente
50
51. iReport - Aspectos Avanzados en el Diseño de Informes
Subinformes
Indicamos la expresión definida en el maestro que se va aIndicamos la expresión definida en el maestro que se va a
utilizar para dar valor al parámetro definido en el
subinforme
P l T iPulsamos en Terminar
Expresión en
el Maestro
P áParámetro
subinforme
51
52. iReport - Aspectos Avanzados en el Diseño de Informes
Subinformes
Una última modificación manual necesaria para que seUna última modificación manual necesaria para que se
visualicen los subinformes
new HashMap($P{REPORT PARAMETERS MAP})_ _
boton derecho->
P i d dPropiedades
52
53. iReport - Aspectos Avanzados en el Diseño de Informes
Subinformes en relaciones muchos-a-
muchosmuchos
La consulta en el subinforme debe cambiarse.
Por ejemplo, para listar todas las películaspor directorj p , p p p
(desde la relación Pelicula-Director):
Consulta en el informe Maestro:
from Director dfrom Director d
Lista de campos de Director: iddirector, nombre
Consulta en el subinforme:
from Pelicula p where $P{NOMBRE} IN p directores nombrefrom 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 guardaAquí, directores es el conjunto definido en la clase Pelicula que guarda
las instancias de directores de una película.
53
55. JasperReport - ¿Qué es JasperReport?
Librería Java para la creación de informes
OpenSource
Generación de informes en archivos PDF, HTML,
XLS, CSV y XML.
Se pueden utilizar diversos orígenes de datos:
JDBC TableModels JavaBeans XML HibernateJDBC, TableModels, JavaBeans XML, Hibernate,
and CSV.
Puede ser incluida en cualquier proyecto Java
(incluyendo J2EE y Aplicaciones Web)
55
56. JasperReport - ¿Qué es JasperReport?
Documentación y Libreria (Registrado):
http://jasperforge org/sf/projects/jasperreportshttp://jasperforge.org/sf/projects/jasperreports
API:
http://jasperreports.sourceforge.net/api/
56
58. JasperReport - Configuración de Eclipse
Incluir la librería JasperReport en el proyecto Eclipse
jasperreports-1.2.2.jar
Project ->Properties ->Java Build Path-> Libraries
58
59. JasperReport - Configuración de Eclipse
Incluir además las siguientes librerías:
Jakarta Commons Digester Component (versión 1.1 o
posterior)posterior)
http://jakarta.apache.org/commons/digester/
commons-digester.jar
Jakarta Commons BeanUtils Component (versión 1.1 o
posterior)
http://jakarta.apache.org/commons/beanutils/
b il jcommons-beanutils.jar
Jakarta Commons Collections Component (versión 1.0 o
posterior)posterior)
http://jakarta.apache.org/commons/collections/
commons-collections.jar
Jakarta Commons Logging Component (versión 1.0 o posterior)
http://jakarta.apache.org/commons/logging/
commons-logging.jar
59
commons logging.jar
También disponibles en el direcotrio /lib de iReport
61. JasperReport - Visualizando informes desde Hibernate
La comunicación entre IReport y JasperReport se lleva a cabo a
través de un conjunto de parámetros definidos en un objeto
HashMapHashMap
Cuatro Pasos
1. Creación de Objetos
Session sesion=
UtilidadHibernate getSessionFactory() openSession();
ó á
UtilidadHibernate.getSessionFactory().openSession();
HashMap parametros = new HashMap();
2. Definición de Parámetros
// Obligatorio: Pasamos la fuente de datos (sesión Hibernate)
parametros put(JRHibernateQueryExecuterFactory PARAMETERparametros.put(JRHibernateQueryExecuterFactory.PARAMETER_
HIBERNATE_SESSION,sesion);
// Opcionales: parámetros del informe
61
// p p
parameterMap.put("genero","Comedia");
62. JasperReport - Visualizando informes desde Hibernate
3. Paso de Parametros al informe
String fileName= "reports/ReportParametros jasper";String fileName= "reports/ReportParametros.jasper";
JasperPrint informe=
JasperFillManager.fillReport(fileName,
parameterMap);
4. Visualización del Informe
parameterMap);
JasperViewer.viewReport(informe, false);
62