IReport
- Área: Librerías y Utilidades para Aplicaciones Java
- Carácter del recurso: Recomendado
Descripción
Es una herramienta de soporte de la librería JasperReports que permite la edición de los informes complejos mediante un editor gráfico permitiendo la inclusión de gráficos, imágenes y subinformes. Esta desarrollada en código Java y es de libre distribución. Las principales características de la herramienta son las siguientes:
- 100% escrito en Java y además OpenSource y gratuito.
- Maneja el 90% de las etiquetas de JasperReports.
- Permite diseñar con sus propias herramientas: rectángulos, líneas, eclipses, campos de los textfields, cartas, subinformes...
- Soporta JDBC.
- Soporta JavaBeans como orígenes de datos (estos deben implementar la interfaz JRDataSource).
- Incluye asistentes para crear informes automáticamente.
- Tiene asistentes para generar los subinformes.
- Tiene asistentes para las plantillas.
En definitiva, permite crear cualquier tipo de informe de una manera sencilla y rápida a través de una interfaz gráfica intuitiva, diseñada tanto para gente que no está familiarizada con esta tecnología y que desconoce la sintaxis XML de JasperReports como a usuarios expertos que ya conocían este lenguaje, ahorrándoles tiempo durante el desarrollo de informes muy elaborados.
El resultado de la utilización de iReport es una plantilla que deberá ser rellenada con los datos que conformarán el informe. Su diseño puede incluir todo tipo de elementos gráficos . A continuación se detallan las secciones que componen un reporte en IReport.
Etiqueta | Descripción |
---|---|
title | Título del reporte. Solo se muestra en la primera página del mismo |
pageHeader | Cabecera de pagina que puede contener información adicional del reporte |
columnHeader | En esta sección se muestran los nombres de los campos a presentar |
detail | En esta sección se despliegan los valores correspondientes a los nombres definidos anteriormente |
columnFooter | Puede presentar valores totales para algún campo de la sección "detail" |
pageFooter | En la parte inferior de cada página para poner fecha, numero de página, etc |
summary | Sección para incluir gráficos o cálculos totales |
Al diseñar un informe podemos seleccionar las etiqueta que consideremos interesantes para nuestro diseño. Todos estos parámetros constituyen el fichero JRXML, es decir, un diseño de informe que ha de ser compilado por el propio iReport utilizando las clases de JasperReports. Así se consigue después un fichero .jasper, el cual servirá de guía para la generación del informe definitivo.
Como todo informe, los datos a mostrar pueden ser estáticos o dinámicos. Por lo tanto IReport admite un gran número de bases de datos. Entre ellas se encuentran MySql, Hsql y Oracle. Sin embargo, es interesante realizar un esfuerzo por mantener la separación de las capas, es decir, la capa de persistencia sea independiente de la de presentación, lo que nos facilitará el rápido entendimiento de nuestras aplicaciones y la cómoda realización de modificaciones futuras.
Ejemplo de Uso
Ejemplo de integración de Ireport con JasperReports
import java.util.*;
import java.sql.Connection; import java.awt.event.*;
/*Librerías necesarias para Jasper Reports*/
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.*;
public class cExport_thread extends Thread {
cConnection conexion;
public cExport_thread(String Clv_area) {
}
/** * Método del hilo */
public void run() {
try {
//Ruta de Archivo Jasper
String fileName="C:proyectoReporte1.jasper";
//Obtener una conexión a la base de datos
conexion = new cConnection();
Connection con = conexion.mkConection();
//Pasamos parametros al reporte Jasper.
Map parameters = new HashMap();
parameters.put("P_Clv_Area_ads",Clv_area);
//Preparacion del reporte (en esta etapa llena el diseño de reporte)
//Reporte diseñado y compilado con iReport
JasperPrint jasperPrint = JasperFillManager.fillReport(fileName,parameters,con);
//Se lanza el Viewer de Jasper, no termina aplicación al salir
JasperViewer jviewer = new JasperViewer(jasperPrint,false);
jviewer.show();
}
catch (Exception j) {
System.out.println("Mensaje de Error:"+j.getMessage())
}
finally{
conexion.closeConecction();
}
}
}
Usos conocidos y recomendaciones
- CNN lo usa para el envío de noticias por parte de los usuarios
Requisitos e incompatibilidades
- Requiere el JDK 1.4 o superior.
- iReport 3.5.1
- JasperReport 3.5.1