Está en la página 1de 7

Tal como mencione en mi articulo anterior iReport es una herramienta practica,

visual y muy simple de utilizar para desarrollar reportes utilizando el API de Jasper
Report.

Los datos que vamos a mostrar en nuestros reportes pueden provenir de distintos
lugares tales como una base de datos o un archivo XML, estas formas diferentes de
obtener datos son las llamadas fuentes de datos - Data Source.

Las fuentes de datos son representadas en Jasper Report por una interfaz llamada
JRDataSource, el motor ya provee muchas implementaciones de esta interfaz para
poder utilizar datos provenientes de Arreglos, Vectores, Collections, Modelos de
Tablas, Consultas SQL, Cubos OLAP, Consultas JPA, Consultas Hibernate, Archivos
CVS, Documentos XML, por nombrar algunos.

Este artículo mostrará como utilizar iReport para manipular datos provenientes de
distintos orígenes, es decir que veremos como se usan con iReport distintas fuentes
de datos.

FUENTES DE DATOS EN IREPORT

iReport permite que configuremos distintos tipos de fuentes de datos de modo que
se pueda trabajar en un entorno mas cercano al de producción.

Los pasos para utilizar una fuente de datos en un reporte son los que se detallan a
continuación.

1. Configurar la fuente de datos, esto varia de acuerdo a cada fuente de datos.


2. Establecer la fuente de datos a utilizar como la fuente de datos activa, para
que al ejecutar el reporte tome los datos de esta fuente de datos.
3. Hacer que el reporte obtenga los campos de la fuente de datos activa, en
general este paso no varia demasiado de una fuente de datos a otra. Hay
que hacer clic en el icono de Fuentes de Datos y Conexiones.

A continuación detallaremos los pasos uno y tres para cada una de las distintas
fuentes de datos.
Empty Data Source

Es el caso más sencillo, es una fuente de datos que no retorna registros. Esta
modelada por la clase JREmptyDatasource.

Esta fuente de datos se usa cuando se ejecuta un reporte con opción de Data
Source vacío. Esta fuente de datos la usamos en el ejemplo del artículo anterior.

Para utilizar esta fuente de datos en nuestra aplicación:

JasperPrint jp = JasperFillManager.fillReport(

jasperReport, new HashMap(), new JREmptyDataSource());

JavaBean Data Source

Esta fuente de datos obtiene los datos de una Collection o un Arreglo de JavaBeans,
haciendo uso según sea el caso de las clases del API de Jasper Report
JRBeanCollectionDataSource o JRBeanArrayDataSource.

Para utilizar esta fuente en iReport necesitamos definir una clase especial que actue
como factory la cual por medio de un método estático retorne el arreglo o la
colección de JavaBeans. Por lo que se deben especificar las siguientes cosas:

• Nombre de la fuente de datos.


• El nombre y paquete de la fábrica.
• El método que retorne el arreglo o colección de JavaBeans.
Para hacer que iReport obtenga los campos del JavaBeans Data Source solo
debemos hacer clic en la pestaña JavaBeans Data Source, ingresar el nombre de la
clase que retorna el listado y seleccionar que atributos son los que queremos
mostrar.
Para utilizar esta fuente de datos en nuestra aplicación en el caso de un arreglo:

Object[] arreglo = buscarClientes();

JasperPrint jp = JasperFillManager.fillReport(
jasperReport, new HashMap(), new JRBeanArrayDataSource(arreglo));

En el caso de utilizar una colección:

Collection colección = buscarClientes();

JasperPrint jp = JasperFillManager.fillReport(
jasperReport, new HashMap(), new JRBeanCollectionDataSource
(coleccion));

CSV Data Source

Esta fuente obtiene los datos de un archivo CSV. Los archivos CSV son estructuras
de datos en forma de tablas representadas de manera muy sencilla, generalmente
las columnas se separan por comas y las filas por saltos de líneas, de aquí proviene
el nombre (Comma-Separated Values).

iReport nos permite utilizar esta fuente de datos, solo estableciendo la ruta al
archivo CSV.

Al configurar la fuente de datos podemos establecer el formato de fecha, los


nombres de las columnas e indicar que obtenga o no dichos nombres de la primera
fila del archivo CSV.
Adicionalmente podremos configurar los separadores de columnas y de salto de
línea.
Para hacer que iReport obtenga los campos del Data Source solo debemos hacer
clic en la pestaña Data Source CSV y establecer que tome los campos de la fuente
de datos activa.
Para utilizar esta fuente de datos en nuestra aplicación en el caso de un arreglo:

File cvs = ...;

JasperPrint jp = JasperFillManager.fillReport(
jasperReport, new HashMap(), new JRCsvDataSource (cvs));

Podemos utilizar estos constructores:

• JRCsvDataSource(java.io.File f): Crea una fuente desde un archivo CSV


utilizando la codificación por defecto.
• JRCsvDataSource(java.io.File f, java.lang.String c): Crea una fuente desde
un archivo CSV utilizando una codificación especificada.
• JRCsvDataSource(java.io.InputStream s): Crea una fuente desde un Input
Stream CSV, usando la codificación por defecto.
• JRCsvDataSource(java.io.InputStream stream, java.lang.String c): Crea una
fuente desde un Input Stream CSV, usando la codificación especificada.

JRCsvDataSource(java.io.Reader reader): Crea una fuente de datos desde un


Reader CSV

También podría gustarte