iReport
Introducción a iReport
La
herramienta iReport es un constructor / diseñador de informes visual, poderoso,
intuitivo y fácil de usar para JasperReports escrito en Java. Este
instrumento permite que los usuarios corrijan visualmente informes complejos
con cartas, imágenes, subinformes, etc. iReport está además integrado conJFreeChart,
una de la biblioteca gráficas OpenSource más difundida para Java. Los datos
para imprimir pueden ser recuperados por varios caminos incluso múltiples
uniones JDBC, TableModels, JavaBeans, XML, etc.
¿Qué es iReport
iReport es un programa que ayuda a los usuarios
y desarrolladores que utilizan la bibliotecaJasperReports para diseñar
visualmente informes.Un pensamiento rico y muy fácil de usar
interfaz gráfica de usuario, iReport proporciona todas lasfunciones más
importatnt para crear informes de Niza en un poco de tiempo.iReport puede ayudar a las personas que
no conocen la biblioteca JasperReports para crear informes complejos y
aprender la sintaxis XML echar un vistazo al código generado.iReport puede ayudar a un diseñador de
informes cualificados para componer página muy complejaen un ahorro de tiempo.iReport está escrito en Java.Desde la versión 0.2.0 se rewrited
totalmente.Por esta razón, setrata de dos manuales
de iReport.La dirección del nuevo desarrollo fue
tomado por un montón derazones.iReport ha perdido un poco de salir de
la interfaz gráfica de usuario efficence win32 nativapara una interfaz clara,
el swing puro.Pero esta es la dirección correcta.
Descripción
Es
una herramienta de soporte de la librería JasperReports que ayuda a la edición
de los informes complejos mediante un editor gráfico, permitiendo la inclusión
de gráficos, imágenes y subinformes. Está 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 origen 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. Sólo
se muestra en la primera página del mismo
|
pageHeader
|
Cabecera de página 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 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.
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);
//Preparación 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();
}
}
}
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);
//Preparación 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();
}
}
}
Requisitos e incompatibilidades
·
Requiere el JDK 1.4 o superior.
·
iReport 3.5.1
·
JasperReport 3.5.1
Librerias que utiliza
- JasperReport
- jasperreports-1.0.1.jar
- commons-digester.jar
- commons-beanutils.jar
- commons-collections.jar
- commons-logging.jar
- itext-1.02b.jar
- poi-2.0-final-20040126.jar
Instalación de
iReport
El iReport viene como un
archivo comprimido. Esto contiene los archivos de distribución principales
(clases y fuente), algunas plantillas para el ayudante (wizard), todos los .jar
requeridos adicionales. Esta herramienta trabaja de manera integrada con el
jasperreport, por lo tanto no se requiere una instalación adicional de jasper.
Prerrequisitos
Necesitará disponer de lo
siguiente:
§ Apache
Ant
§ IReport
§ Jassperreport-0.x.x
(usar la versión que viene incluida con iReport)
Instalación y
configuración del ambiente de trabajo
Instalación de ANT
§ Descargar
la versión apache-ant-1.6.2-bin.zip
o superior.
§ Descomprimir
el archivo zip.
§ Crear
un directorio con el nombre ANT_HOME o ANT. En el directorio raiz. C:\.
§ Copiar
el contenido de Ant en la carpeta creada.
§ Configurar
las variables de entorno:
1. ANT_HOME = C:\ANT_HOME o ANT_HOME = C:\ANT
2. JAVA_HOME = C:\ jdk1.5.0
3. PATH = C:\ANT\bin
Instalación de iReport.
· Descargar la version
iReport-0.3.2.zip o superior.
· Descomprimir el archivo zip
· Crear un directorio con el nombre iReport
en el directorio raiz C:\.
· Copiar en contenido del iReport en la
carpeta creada.
· Copiar el archivo tools.jar que se
encuentra en “C:\ jdk1.5.0\lib”del jdk al directorio “C:\iReport\lib” Colocar el Driver “classes12.jar”
de oracle en el directorio “C:\iReport-0.2.2\lib” (Aplica para cualquier driver JDBC
que necesitemos) Configurar
las variables de entorno:
1. CLASSPATH:
C:\iReport\lib\jasperreports-0.6.0.jar.
2. CLASSPATH:
C:\iReport\lib\itext-1.02b.jar (este archivo es para el uso de archivos pdf)
§ Finalmente deberá compilar los fuentes. Para esto
ubíquese en C:\iReport y ejecute el comando ant
Levantando el iReport
Para levantar la aplicación del iReport, debe dirigirse
hasta el lugar donde descomprimió los archivos, ahí ejecutar el comando iReport.bat como se muestra en la siguiente
figura:
Otra forma de levantar la aplicación es
a través de ANT, para ello se debe abrir una ventana de cmd, ubicarse en la
ruta donde se encuentra instalado el iReport, ej : C:\iReport y colocar el
comando ant iReport,
como se muestra en la siguiente figura:
La interfaz gráfica de iReport comienza
a cargarse:
Configurar las opciones: Ir a Tools à Options
Para configurar el idioma: ir a Tools à Options
Luego presionar “Apply” y por último
“Save”. Notaremos como el idioma de la barra de herramientas ha cambiado en
función de nuestra elección.
Para empezar con iReports:
Seleccionar “Project à New”
Seleccionar “File à New
Document”
Aquí deberá definir el nombre del reporte,
tamaño de la pantalla, orientación, márgenes, etc.
La apariencia del layout (plantilla) de
la página del reporte es la siguiente:
ˆ”/>
Donde:
§ title Aparece
sólo al inicio del reporte. El título se escribe en está sección. Ejemplo:
“Reporte de Desempeño de los empleados”
§ pageHeader Aparece
en la parte superior de cada página. Puede contener información como la fecha y
hora, nombre de la organización, etc.
§ columnHeader Sirve
para listar los nombres de los campos que se van a presentar (desplegar). Por
ejemplo: “Nombre del Empleado”, “Hora de Entrada”, “Hora de Salida”, “Horas
trabajadas”, “Fecha”, etc.
§ detail En esta
sección se despliegan los valores correspondientes a las entradas de campos
definidas en la sección anterior. Por ejemplo “Juan Perez”, “09:00”, “18:00”,
“9”,”2005-04-27”
§ columnFooter Puede presentar información sumarizada para cada uno de
los campos. Por ejemplo “Total de Horas Trabajadas: 180”
· pageFooter Aparece en la parte inferior de cada
página. Este parte puede presentar, el contador de páginas como “Página 1/7”
§ summary Esta sección se usa para
proporcionar información sumarizada de los campos presentes en la sección
“detail” por ejemplo para el caso de las horas trabajadas de cada empleado se
puede definir un objeto gráfico tipo “pie” para tener una mejor
comparación y comprensión
visual de los datos.
Los objetos de texto,
imágenes, etc pueden ser colocados en la plantilla del documento usando el
método de arrastrar y pegar.
Para insertar texto puro usar:
|
Para insertar campos (Fields) usar:
|
Para insertar imágenes usar:
|
Cuando insertamos un
objeto de texto lo haremos arrastrando el elemento hasta el lugar del documento
donde queramos visualizarlo. Seguidamente se presionará clic derecho para
editar las propiedades del objeto y así poder definir los valores de fuente,
bordes y el contenido mismo del texto.
![]() |
|
A medida que insertemos objetos de texto
(estáticos y campos dinámicos), nuestro reporte empezará a definir la
apariencia visual que buscamos.
Los documentos que se generan con
iReports + jasperreports tienen varios valores que son seteables o configurables,
estos son parámetros, campos (Fields) y variables:
a)Parámetros: son valores generales como el titulo del reporte / subreporte, ubicación, autor, etc.
b)Campos (Fields): son los
campos tipo texto que llenaremos desde las consultas lanzadas a la aplicación
durante la ejecución del reporte.
c) Variables: una
variable es un valor calculado como una sumatoria.
Para definir los
parámetros se tiene que pulsar el botón “Parameters” desde la barra de
herramientas
|
|
|
|
|
|
|
|
Los objetos de tipo TextField, deben
definir un campo field en su viñeta de propiedades y deben usar el key
“textField”. En general debe configurarse como se indica en las siguientes
pantallas.
|
|
|
Una vez que hemos
terminado de diagramar nuestro reporte, debemos compilar y luego ejecutarlo. La
herramienta nos permite tener una vista previa en varios formatos de la
apariencia de nuestro documento.
Una vez compilado, se tiene que ejecutar
el reporte. Para esto iremos a Build à Execute Report
Observamos que cuando no definimos un
datasource los campos aparecen como null.
Conexión con la Base de Datos.
Seleccionar DataSource–>
Connection/DataSource–>New
§ Name:
Escribir el nombre de la base de datos.
§ JDBC
Driver: Seleccionar el Driver de la base de datos con la cual se realizará la
conexión.
§ JDBC URL: escribir la dirección URL de donde se encuentra
alojado el ambiente de trabajo de la base de datos.
§ Especificar
la cadena de conexión con la base de datos, colocar usuario y password.
§ Salvar
la configuración de la conexión.
Presionar el botón Test, para verificar que la conexión este
correcta, para la cual deberá aparecer la siguiente ventana:
Para seleccionar la conexión
configurada: Ir al Menú y
seleccionar ” Build à Set Active Connection”. Aparecerá una
pantalla como la que se muestra a continuación:
Incluir clases en iReport
Pasos para incluir un clase java en el
iReport:
§ Agregamos
nuestros campos de la Base de Datos:
§ Creamos
la clase que vamos a utilizar:
CalculosFecha.java
import java.sql.*;
import java.util.*;
import java.text.*;
import
net.sf.jasperreports.engine.*;
public class
CalculosFecha extends JRDefaultScriptlet
{
public static String user = “xxxxxx”;
public static String pasw = “xxxx”;
public static String driver = “oracle.jdbc.driver.OracleDriver”;
public static String url = “xxxxxx”;
public static ResultSet rs = null;
public static Statement st = null;
public static Connection cn = null;
public static PreparedStatement pst = null;
public static int per=0;
/*
Datos del Reporte
*/
public String hello() throws
JRScriptletException
{
return “Mi Primera clase”;
}
}
§ Le
indicamos que vamos a usar una clase:
Uses this Scriplet
class..
Le colocamos el nombre de la clase:
CalculosFecha (en este caso)
§ Agregamos
la descripción de la clase en el iReport:
TextField
Expresión:((CalculosFecha)$P{REPORT_SCRIPTLET}).hello()
§ Compilamos
desde mi servidor web, porque si lo hago directamente del iReport me dara
error. Entonces lo compilos desde el WEB-SERVER.
<!–/*
*********************************************************************
*
Formulario:
scriplet.jsp.
*
*
Fecha de Creacion:
28-09-2004
*
**********************************************************************
*
Funcion:
****
**********************************************************************
*/–>
<%@ page
import=”net.sf.jasperreports.engine.*” %>
<%@ page
import=”net.sf.jasperreports.engine.design.*” %>
<%@ page
import=”net.sf.jasperreports.engine.data.*”%>
<%@ page
import=”net.sf.jasperreports.engine.export.*”%>
<%@ page
import=”net.sf.jasperreports.engine.util.*”%>
<%@ page import=”net.sf.jasperreports.view.*”%>
<%@ page
import=”net.sf.jasperreports.view.save.*”%>
<%@ page
import=”java.sql.*”%>
<%@ page
import=”java.util.*” %>
<%@ page
import=”java.io.*” %>
<html>
<head><title>Generando
Reporte Nomina……………</title>
<%
System.out.println(“Comienza el Reporte—————————-“);
%>
<script
language=”JavaScript”>
function regresar(){
history.back();
}
function error(){
alert(“Error encontrando procesando el periodo: ” + periodo);
history.back();
}
</script>
<head>
<%
try{
ResultSet rs = null;
Statement st = null;
String sql = null;
String driver = “oracle.jdbc.driver.OracleDriver”;
String connectString = “********”;
String user = “***************** “;
String password = “*********”;
Class.forName(driver);
Connection conn = DriverManager.getConnection(connectString, user, password);
/////////////////////////////////////////////
System.out.println(“********Compilamos pago_nomina.jrxml OK********”);
System.setProperty(
“jasper.reports.compile.class.path”,
application.getRealPath(“/WEB-INF/lib/jasperreports-0.6.0.jar”) +
System.getProperty(“path.separator”) +
application.getRealPath(“/WEB-INF/classes/”)
);
System.out.println(“*****Cargamos el jasperreports-0.6.0.jar OK*********”);
System.setProperty(
“jasper.reports.compile.temp”,
application.getRealPath(“/reports/”)
);
JasperCompileManager.compileReportToFile(application.getRealPath(“/reports/mipagina.jrxml”));
System.out.println(“******Fin de la Compilamos el archivos***********”);
/////////////////////////////////////////////
File reportFile = new File(application.getRealPath(“/reports/mipagina.jasper”));
Map parameters = new HashMap();
byte[] bytes =
JasperRunManager.runReportToPdf(
reportFile.getPath(),
parameters,
conn
);
response.setContentType(“application/pdf”);
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
System.out.println(“jasperPDF OK…………..”);
///////////////////////////////////////////////////////////////
System.out.println(“Fin del reporte pago_reporte_nomina………….”);
}catch (JRException e)
{System.out.println(“Error:” +e.getMessage());}
catch (Exception e)
{
e.printStackTrace();
System.out.println(“Error2:” +e.getMessage());
}
%>
<body >
</body>
</html>
¿Qué es
iReport?
Un pensamiento
rico y muy fácil de usar interfaz gráfica de usuario, iReport proporciona todas
las funciones más importantes para crear informes de Niza en un poco de tiempo.
IReport ha
perdido un poco de salir de la interfaz gráfica de usuario efficence win32
nativa para una interfaz clara, el swing puro.
Descripción
Es una
herramienta de soporte de la libreria Jasper Reports que ayuda a la edicion de
los informes complejos mediante un editor grafico, permitiendo la inclusion de
graficos, imagenes y subinformes.
En definitiva,
permite crear cualquier tipo de informe de una manera sencilla y rapida a
traves de una interfaz grafica intuitiva, disenada tanto para gente que no esta
familiarizada con esta tecnologia, y que desconoce la sintaxis XML de Jasper
Reports, como a usuarios expertos que ya conocian este lenguaje, ahorrandoles
tiempo durante el desarrollo de informes muy elaborados.
A continuacion
se detallan las secciones que componen un reporte en IReport.
Todos estos
parametros constituyen el fichero JRXML, es decir, un diseno de informe que ha
de ser compilado por el propio iReport utilizando las clases de Jasper Reports.
Instalacion de
iReport
Otra forma de
levantar la aplicación es a través de ANT, para ello se debe abrir una ventana
de cmd, ubicarse en la ruta donde se encuentra instalado el iReport, ej :
C:\iReport y colocar el comando ant iReport, como se muestra en la siguiente
figura: summary Esta sección se usa para proporcionar información suma rizada
de los campos presentes en la sección detail por ejemplo para el caso de las
horas trabajadas de cada empleado se puede definir un objeto grafico tipo pie
para tener una mejor comparación y comprensión visual de los datos.
A medida que insertemos objetos de texto, nuestro reporte empezara a definir la
apariencia visual que buscamos.
Los documentos que se generan con iReports + jasperreports tienen varios
valores que son seteables o configurables, estos son parametros, campos y
variables: Los objetos de tipo Text Field, deben definir un campo field en su
vineta de propiedades y deben usar el key text Field .
SUMMARY
What is
iReport?
A rich and very
easy to use graphical user interface, iReport provides all the most important
functions to create nice reports in a little time.
IReport has
lost a bit of leaving the GUI efficence native win32 interface for a clear,
pure swing interface.
Description
It is a Jasper
Reports library support tool that helps edit complex reports through a
graphical editor, allowing the inclusion of graphics, images and subreports.
In short, it
allows to create any type of report in a simple and fast way through an
intuitive graphical interface, designed for people who are not familiar with
this technology, and who does not know the XML syntax of Jasper Reports, as
well as expert users who Already knew this language, saving them time during
the development of very elaborated reports.
Below are the
sections that compose a report in IReport.
All these
parameters constitute the JRXML file, that is, a report design that has to be
compiled by the iReport itself using the Jasper Reports classes.
Installing
iReport
Another way to
get the application is through ANT, for this you have to open a cmd window,
located in the path where the iReport is installed, eg: C: \ iReport and place
the ant iReport command, as shown in The following figure: summary This section
is used to provide summed information of the fields present in the detail section
for example for the case of the hours worked of each employee can define a
graphic object type foot to have a better comparison and visual understanding
Of the data.
As we insert
text objects, our report will begin to define the visual appearance we are
looking for.
The documents
that are generated with iReports + jasperreports have several values that are
settable or configurable, these are parameters, fields and variables: Text
Field objects must define a field field in their properties file and must use
the key text Field.
Para
Hacer un Reporte lo primero que se debe hacer es el análisis completo del
sistema y sus funciones. Y coger los requerimientos más específicos que al
usuario lo sirva o simplifique su
trabajo.
Un
reporte es algo fundamental en un sistema ya que gracias a ello vamos a tener
un mejor control del tipo de negocio que una persona u empresa posee.
CONCLUSIONES
En
este trabajo damos a conocer sobre la importancia que tiene hacer reportes con
la herramienta iReport que es un constructor / diseñador 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 espero sea de su total importancia.
APRECIACIÓN
DEL EQUIPO
Desde
el punto de vista del grupo se afirma que iReport es una herramienta en código
abierto de generación de informes muy útil que nos permite generar información
detallada en formato PDF, HTML, XLS, CSV o XML. Ha sido desarrollada
completamente en Java, por lo que puede ser usada en una amplia variedad de
aplicaciones Java para generar contenido dinámico.
GLOSARIO
DE TÉRMINOS
Plugins: Un plugin es aquella aplicación que, en un programa informático, añade una
funcionalidad adicional o una nueva característica al software. En nuestro
idioma, por lo tanto, puede nombrarse al plugin como un complemento.
Reiniciar: Reiniciar el ordenador o computadora es el proceso de recargar el sistema
operativo de una computadora.
Wizard: Wizard es el que te indica o te guía en el procedimiento durante una
instalación de un programa o aplicación.
Constructor.-
Un constructor es una subrutina cuya misión es inicializar un objeto de una
clase.
LINKOGRAFÍA
No hay comentarios:
Publicar un comentario