You are on page 1of 8

Manual de Creacion de Reportes – E-learning

Creación de Reportes con iReports y JasperReport

Introducción

¿Qué es iReport?
iReport es una herramienta que nos permite crear reportes visualmente
y los formatos que soporta para la salida son XML, PDF, XLS, HTML, CSV, etc.
Es gratuito y viene como una aplicación independiente o como plugin para Netbeans, lo puedes
descargar desde su página oficial.
Podemos crear reportes de varias maneras, desde una base de datos lo más común, de archivos
XML o "sin datos" un reporte vacío. Aquí veremos un ejemplo utilizando una base de datos en
MySQL.

Tema 1: Reportes con Conexión a Base de Datos iReport

Ahora veremos unos ejemplos de cómo usarlos en nuestras aplicaciones Java. Dividiré estos
ejemplos en varios temas dedicando cada uno a una forma muy particular de la creación de
reportes.

Para estos ejemplos usaremos las últimas versiones de ambas herramientas.

Lo primero que haremos es bajar el JasperReports y iReport. Este último lo usaremos en su


faceta de aplicación standalone y no como plugin para NetBeans. (O sea una aplicación
independiente a esta)

Como ya había dicho: Las últimas versiones de iReport están basadas en la plataforma de
NetBeans por lo que las interfaces de ambos son muy parecidas.

Para crear reportes con una conexión a la base de datos lo primero que haremos es crear una base
de datos con tablas y datos de pruebas para poder tener algo interesante que ver en nuestros
reportes. En este caso usaré MySQL versión 5.1, el cual pueden descargar desde su página oficial.
Usando el conector para Java versión 5.1.13 que pueden descargar desde la página de MySQL.
Aunque cualquier base de datos que les guste funcionará para estos ejemplos.

La base de datos que usaremos se llama "pruebaReportes" y contiene la tabla "participantes".


Este es el script para la creación de esta tabla:

CREATE TABLE 'participantes' (


'ID' bigint(21) NOT NULL,
'NOMBRE' varchar(100) NOT NULL,
'USERNAME' varchar(100) NOT NULL,
'PASSWORD' varchar(100) NOT NULL,
'COMENTARIOS' varchar(100) default NULL,
PRIMARY KEY ('ID')
) ENGINE=InnoDB DEFAULT CHARSET=latin1

Y este es el script para poblar la tabla anterior:

insert into 'participantes'('ID','NOMBRE','USERNAME','PASSWORD','COMENTARIOS') values


(1,'Participante 1','par1user','part1pass','comentarios participante 1');

Instructora: Zulma Angélica Argüello Matas Página 1


Manual de Creacion de Reportes – E-learning

insert into 'participantes'('ID','NOMBRE','USERNAME','PASSWORD','COMENTARIOS') values


(2,'Participante 2','par2user','part2pass','comentarios participante 2');

insert into 'participantes'('ID','NOMBRE','USERNAME','PASSWORD','COMENTARIOS') values


(3,'Participante 3','par3user','part3pass','comentarios participante 3');

insert into 'participantes'('ID','NOMBRE','USERNAME','PASSWORD','COMENTARIOS') values


(4,'Participante 4','par4user','part4pass','comentarios respecto al participante 4');

insert into 'participantes'('ID','NOMBRE','USERNAME','PASSWORD','COMENTARIOS') values


(5,'Participante 5','par5user','part5pass','sin comentarios para el participante 5');

insert into 'participantes'('ID','NOMBRE','USERNAME','PASSWORD','COMENTARIOS') values


(6,'Participante 6','par6user','part6pass',NULL);

insert into 'participantes'('ID','NOMBRE','USERNAME','PASSWORD','COMENTARIOS') values


(7,'Participante 7','par7user','part7pass','comentatios participante 7');

insert into 'participantes'('ID','NOMBRE','USERNAME','PASSWORD','COMENTARIOS') values


(8,'Participante 8','par8user','part8pass','comentarios participante 8');

insert into 'participantes'('ID','NOMBRE','USERNAME','PASSWORD','COMENTARIOS') values


(9,'Participante 9','par9user','part9pass','comentarios participante 9');

insert into 'participantes'('ID','NOMBRE','USERNAME','PASSWORD','COMENTARIOS') values


(10,'Participante 10','par10user','part10pass',NULL);

Ahora crearemos nuestro Reporte con iReports

Ahora que tenemos nuestros datos crearemos un "datasource" en iReport para poder acceder a
nuestros datos y hacer pruebas directamente, sin necesidad de una aplicación Java (por el
momento). Para crear este datasource hacemos clic en el ícono "Report Datasources" ubicado en
la barra de herramientas de iReport:

Con lo que se abrirá la ventana de "Connections / Datasources" que en este momento debe
contener solo un "Empty datasource" y la conexión a una base de datos de prueba en HSQLDB.
Ahora hacemos clic en el botón "New" para crear nuestro nuevo datasource.

Instructora: Zulma Angélica Argüello Matas Página 2


Manual de Creacion de Reportes – E-learning

En la nueva ventana que se abre seleccionamos "Database JDBC connection" y presionamos el


botón "Next". En la siguiente ventana debemos proporcionar algunos datos como el nombre se le
dará al datasource y los datos para realizar la conexión de la base de datos. Después de llenar
estos datos su ventana debe haber quedado más o menos como la siguiente (recuerden usar el
"JDBC Driver" que corresponda al manejador de base de datos que estén usando:

Antes de guardar esta configuración hagan clic en el botón "Test" para probar que todos los datos
proporcionados son correctos. Si todo ha salido bien, al hacer clic en el botón "Save" la ventana
actual debe cerrarse y nuestro datasource debe estar ahora en la ventana "Connections /
Datasources".

Ahora pasaremos a crear nuestro nuevo reporte. Esta será la primer y única ocasión en la que
haremos uso del "Report Wizard" para ayudarnos a generar el reporte. Para esto vamos al menú
"File -> New...". Con esto se abrirá la ventana de "New File" en la que seleccionaremos el formato
de nuestro reporte. En mi caso seleccionaré la plantilla "Wood" aunque pueden seleccionar la que
ustedes deseen, y hacemos clic en el botón "Launch Report Wizard"

Instructora: Zulma Angélica Argüello Matas Página 3


Manual de Creacion de Reportes – E-learning

Este wizard nos ayudará a crear un reporte 100% funcional en 6 pasos, podremos ver desde el
mismo iReport sin necesidad de escribir una solo línea de código Java. Estos 6 pasos son:

1. Selección de la ubicación en la que se guardará nuestro reporte.


2. Selección del datasource e introducción del query para obtener los datos que nos
interesan.
3. Selección de los datos que queremos mostrar en el reporte.
4. Creación de grupos para el reporte (se explicará en un post posterior). 5.
Selección del layout o acomodo de los datos en el reporte
6. Felicitación por terminar nuestro reporte =D.

Los pasos interesantes son el 3 y el 4, así que será en estos en los que nos enfocaremos más.

El paso 1 se realiza de forma automática, así que no tenemos mucho que hacer en él. En el paso 2
(en donde comenzamos) seleccionamos el directorio en el que queremos guardar nuestro reporte
y el nombre que tendrá.

Nota: La extensión de documentos de reportes generados por JasperReports es ".jrxml" que


significa "jasper reports xml", y es un documento xml que contiene los datos para generar
un archivo compilado (".jasper") que es el que usaremos principalmente en nuestras
aplicaciones Java (aunque también podríamos optar por compilar nuestro archivo ".jrxml"
desde la misma aplicación Java y así generar el archivo ".jasper" correspondiente).

En este momento no importa mucho en donde guardemos el archivo que se generará, ya que
posteriormente tendremos que moverlo para que nuestra aplicación java pueda encontrarlo. Por mi
parte llamaré al archivo "reporte1".

Hacemos clic en el botón "Next" para continuar con el paso 3. En este paso debemos seleccionar
el datasource desde el que los datos del reporte serán tomados. Por default está seleccionado el
"Empty datasource". Así que nosotros seleccionamos el datasource "Conexion MySQL Pruebas"
(el datasource que creamos anteriormente).

Al hacer el cambio del datasource veremos que aparece un textarea con el título "Query(SQL)" y
en la parte inferior debemos tener un mensaje de error que dice "Invalid query".

Instructora: Zulma Angélica Argüello Matas Página 4


Manual de Creacion de Reportes – E-learning

Esto ocurre porque, efectivamente, en el text area no tenemos una consulta válida (de hecho no
tenemos ninguna). Por lo que ahora corregiremos eso. Para esto tenemos 3 opciones:

1. Escribir una consulta nosotros mismos de forma directa.


2. Cargar una consulta que tengamos guardada en algún archivo .sql o .txt.
3. Crear una consulta usando el "diseñador de consultas".

Nosotros haremos uso del diseñador de consultas. Hacemos clic en el botón "Design query" con
lo que se abrirá una nueva ventana que está dividida en tres secciones.

La primera sección es la de la estructura de la consulta. Aquí básicamente podremos cambiar entre


las sentencias que estamos editando (SELECT, WHERE, ORDER BY, etc.). La segunda sección
es la de los elementos de nuestra base de datos (tablas, vistas, y temporales locales). Aquí
podremos seleccionar los elementos de los que queremos obtener datos para la consulta.
Finalmente la tercera sección nos muestra los elementos que hemos seleccionado de la segunda
sección para que podamos seleccionar los datos a obtener.

La consulta que haremos será para obtener todos los datos de la tabla "participantes", con
excepción del "ID". Para esto hacemos doble clic sobre el nombre de la tabla "participantes" en la
segunda sección de la ventana que tenemos abierta. Con esto aparecerá en la tercer sección otra
ventana con el título "participantes" y un conjunto de checkboxes, cada uno con un campo de
nuestra tabla. Para generar la consulta que nos interesa solamente seleccionamos todos los
checkboxes (con excepción del "ID") y veremos que la consulta se genera en la primer sección. Ya
solo damos clic en el botón "OK".

Instructora: Zulma Angélica Argüello Matas Página 5


Manual de Creacion de Reportes – E-learning

Con esto ya tendremos nuestra consulta en el text area correspondiente y podemos continuar con
el paso 4, para lo que hacemos clic en el botón "Next".

En este paso solo tenemos que seleccionar cuáles campos del query generado en el paso anterior
queremos que se muestren en el reporte. Como nosotros queremos que se muestren todos
pasamos todos los campos del lado izquierdo al lado derecho y hacemos clic en el botón "Next".

Ahora en el paso 5 debemos seleccionar cómo queremos que los datos sean agrupados. Esto lo
explicaré en algún otro post, pero por el momento dejemos todo en blanco y demos clic en el botón
"Next".

El último paso es el solamente una felicitación por haber creado un nuevo reporte.

Ahora hacemos clic en el botón "Finish" y ya podremos ver la plantilla de nuestro reporte.

Instructora: Zulma Angélica Argüello Matas Página 6


Manual de Creacion de Reportes – E-learning

Si queremos ver como se verá el reporte final, en este caso, podemos ver un preview con los datos
reales si cambiamos a la vista de "preview" en la ventana del editor.

Al hacer clic en la pestaña de "preview", nuestro reporte se compilará y se mostrará. En este caso
el reporte puede ser pre-visualizado porque las siguientes condiciones se cumplen:

• Tenemos una base de datos poblada (esto es muy importante, ya que si no tiene datos
obtendremos un mensaje de error).
• Tenemos un datasource configurado para esta base de datos.
• Nuestro reporte hace una consulta directa a esta base de datos a través del datasource
anterior.
• El reporte está preparado para mostrar los datos recuperados anteriormente.
Como veremos en los siguientes posts, podría ser que no todas estas condiciones se cumplan al
mismo tiempo, por lo que tendremos problemas para ver los datos en el preview del reporte.

Algo importante que ocurre al hacer este preview es que el reporte se compila generando el
archivo "reporte1.jasper" el cual es el archivo que usaremos desde la aplicación Java que
crearemos en un momento.

Si queremos compilar nuestro reporte de forma manual podemos hacer clic en el botón "Compile
Report" de la vista de diseño:

Haremos algunas modificaciones para que este reporte se vea un poco mejor: primero cambiaremos
el título que dice "Wood Title" por "Reporte de Participantes", cambiamos el color de texto a negro,
y eliminamos el fondo y el subtítulo que tiene.

Instructora: Zulma Angélica Argüello Matas Página 7


Manual de Creacion de Reportes – E-learning

Además cambiamos el título de cada una de las columnas por algo más claro. Por ejemplo, podemos
cambiar el título de la columna "participantes_USERNAME" a "Usuario",
"participantes_NOMBRE" a "Nombre", etc.

Al final mi reporte queda de esta forma:

Con este preview:

En el siguiente tema veremos cómo generar este reporte desde una aplicación Java.

Nota: Hay algunas notaciones usadas en la plantilla del reporte que tal vez no comprendan
como $F{participantes_USERNAME} y$V{PAGE_NUMBER}. Esta es una sintaxis especial
que usa JasperReports para definir campos de objetos y variables, respectivamente. Existe
otro tipo de dato que se usa llamado propiedades ($P{propiedad}). Como todo esto fue
colocado por el wizard no lo explicaré hasta el siguiente tema.

Instructora: Zulma Angélica Argüello Matas Página 8

You might also like