IReport

RECU-0238 (Recurso Ficha Técnica)

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.

EtiquetaDescripción
titleTítulo del reporte. Solo se muestra en la primera página del mismo
pageHeaderCabecera de pagina que puede contener información adicional del reporte
columnHeaderEn esta sección se muestran los nombres de los campos a presentar
detailEn esta sección se despliegan los valores correspondientes a los nombres definidos anteriormente
columnFooterPuede presentar valores totales para algún campo de la sección "detail"
pageFooterEn la parte inferior de cada página para poner fecha, numero de página, etc
summarySecció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