Curso de Ireport

Embed Size (px)

Citation preview

Creado por

MANUAL IREPORTSLB

Documentacin

Fecha: 09/09/2008

NORMAS-001

IMANUAL IREPORTS

Creado porLenin Boada Pino

Fecha Creacin09/09/2008

Fecha Modificacin09/09/2008

INDICE

31.INSTALACION

42.LEVANTAR IREPORTS

53.CONFIGURAR DATA SOURCE

84.Distribucin del Layout

105.Barra de herramientas

116.Definicin PARMETROS, campos y Variables

157.Definicin CONSULTA CON Parmetros

168.CAMPOS CALCULADOS

179.MANEJO DEL PRINT WHEN EXPRESSION

1810.GRAFICOS EN IREPORTS

2111.SUBREPORTES

2612.REPORTES DINAMICOS

2713.USO DE CLASES JAVA

2914.ENLACES DE INTERES

1. INSTALACION1. Instalar DB2 como cliente para conectarse a un servidor de Base de Datos.

2. Instalar j2sdk y configurar las variables de entorno

a. JAVA_HOME

b. PATH

3. Instalar Ireport

a. Copiar la carpeta en el siguiente PATH

2. LEVANTAR IREPORTSEjecutar C:\Archivos de Programa\Apache\Ireport-1.2.0\ireport.bat

La interfaz grfica de iReport comienza a cargarse:

3. CONFIGURAR DATA SOURCE Verificar que los archivos *.jar que permiten la conexin va JDBC estn definidos en la variable de sistema

Configurar los DataSource JDBC

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 conexin.

JDBC URL: La direccin URL de donde se encuentra alojado el ambiente de trabajo de la base de datos.

Especificar la cadena de conexin con la base de datos, colocar usuario y password.

Salvar la configuracin de la conexin.

Presionar el botn Test, para verificar que la conexin este correcta, para la cual deber aparecer la siguiente ventana:

Para Oracle los parmetros son:

4. Distribucin del Layout

La apariencia del layout (plantilla) de la pgina del reporte es la siguiente:

Donde:

title Aparece slo al inicio del reporte. El ttulo se escribe en est seccin. Ejemplo: Reporte de Desempeo de los empleados pageHeader Aparece en la parte superior de cada pgina. Puede contener informacin como la fecha y hora, nombre de la organizacin, 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 seccin se despliegan los valores correspondientes a las entradas de campos definidas en la seccin anterior. Por ejemplo Juan Perez, 09:00, 18:00, 9,2005-04-27 columnFooter Puede presentar informacin sumarizada para cada uno de los campos. Por ejemplo Total de Horas Trabajadas: 180 pageFooter Aparece en la parte inferior de cada pgina. Este parte puede presentar, el contador de pginas como Pgina 1/7 summary Esta seccin se usa para proporcionar informacin sumarizada de los campos presentes en la seccin detail por ejemplo para el caso de las horas trabajadas de cada empleado se puede definir un objeto grfico tipo pie para tener una mejor comparacin y comprensin visual de los datos.

5. Barra de herramientas

Los objetos de texto, imgenes, etc pueden ser colocados en la plantilla del documento usando el mtodo de arrastrar y pegar.

Para insertar texto puro usar:

Para insertar campos (Fields) usar:

Para insertar imgenes 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 (estticos y campos dinmicos), nuestro reporte empezar a definir la apariencia visual que buscamos.

6. Definicin PARMETROS, campos y Variables

Para definir los parmetros se tiene que pulsar el botn Parameters desde la barra de herramientas

Los documentos que se generan con iReports + jasperreports tienen varios valores que son seteables o configurables, estos son parmetros, campos (Fields) y variables:

a)Parmetros: son valores generales como el titulo del reporte / subreporte, ubicacin, autor, etc.

b)Campos (Fields): son los campos tipo texto que llenaremos desde las consultas lanzadas a la aplicacin durante la ejecucin del reporte.

c) Variables: una variable es un valor calculado como una sumatoria.

Los objetos de tipo TextField, deben definir un campo field en su vieta 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.

7. Definicin CONSULTA CON Parmetros

RECOMENDACIONES: USAR SQL ESTNDAR

USAR FUNCIONES DE USUARIO PARA EVITAR JUNTURAS

NO USAR ALIAS EN LAS TABLAS

NO USAR FUNCIONES COMO COUNT(*), SUM(*), UNION

Para que un Query maneje parmetros en ireports de debe hacer referencia a los parmetros previamente creados en el reporte. De la siguiente manera:

SELECT CODIGO,TIPO,NOMBRE

FROM mutual.CO_CTA

WHERE CODIGO BETWEEN $P{CodigoIni} AND $P{CodigoFin} AND ID_EMPRESA=$P{Empresa}

ORDER BY CODIGO

8. CAMPOS CALCULADOS Crear un nuevo TextField , dar clic derecho e ir a sus propiedades.

Poner la frmula clculo en TEXTFIELD EXPRESSION.

Tanto parmetros, campos o variables pueden participar en una frmula.

Parmetros -> $P{nombre_parametro}

Campo -> $F{nombre_campo}

Variable -> $V{nombre_variable}

Se deben respetar estrictamente el manejo de tipos de datos del lenguaje JAVA.

Por ejemplo:

No se podrn sumar String y tipos de Datos Double.

No se podrn sumar DATE , para eso se usan los mtodos propios de la Clase DATE.

Ejemplos de frmulas utilizados:

Suma de valores Double.

new Double ( V{totalactivo}.doubleValue()+ $V{total4}.doubleValue()+ $V{total61}.doubleValue()+ $V{total63}.doubleValue()+ $V{total71}.doubleValue()+ $V{total73}.doubleValue())

Obtener la fecha actual

new Date()

Frmula de condicin.- Si el signo es N, el saldo lo multiplica por -1

( $F{SIGNO}.equals("P") ? $F{SALDO} : new Double ($F{SALDO}.doubleValue() *

new Double(-1).doubleValue()))

Para la paginacin:

"Pagina: " + $V{PAGE_NUMBER} + " de "

9. MANEJO DEL PRINT WHEN EXPRESSION

Sirve para indicar una condicin para que el campo pueda ser mostrado en el reporte o no. Debe recibir un resultado Booleano.

10. GRAFICOS EN IREPORTS

A partir de la versin 0.4.0, iReport proporciona una herramienta para simplificar la construccin de un grfico. Esta herramienta permite crear un grfico configurando propiedades y datos principales que sern vistos de manera simple por el usuario final.

La creacin de un grfico se basa en una librera muy conocida de cdigo libre llamada JFreeCharts desarrollada por David Gilbert de Object Refinery Limited. iReport soporta por ahora solamente un pequeo nmero de tipos de grficos presentados en JFreeCharts, y pueden modificarse solamente algunas de las propiedades del grfico, pero es posible an as, crear grficos limpios con un gran impacto a la vista.DISEO DE EJEMPLO

Para insertar un grfico en un reporte de iReport, seleccione el objeto Chart tool de la barra de herramientas de iReport y dibuje el grfico sobre la seccin summary del reporte:

A continuacin deber seleccionar el tipo de grfico deseado, para este ejemplo seleccionamos el tipo BAR. Oprimir el botn OK y el componente que contendr al grfico ya ha sido creado, lo que resta es configurar las propiedades del mismo y los datos que mostrar.

Haciendo doble click sobre el componente del grfico, se mostrar la pantalla de propiedades de este, sitese en la pestaa Chart, a continuacin oprima el botn Edit chart properties, deber aparecer una pantalla como la siguiente:

En la pestaa Chart properties de esta pantalla, se encuentran las propiedades que pueden modificarse para el grfico en turno, como el nombre del grfico, las fuentes, leyendas, ect. Puede dejar las propiedades actuales por ahora y modificarlas posteriormente. Ahora centraremos la atencin en la manera de configurar los datos para el grfico.

Debe situarse en la pestaa Chart data de la pantalla anterior y enseguida en la pestaa Details. En el apartado Seriesexpression, coloque la descripcin para el eje de las X , en el apartado Category expresin coloque el campo $F{} para los valores del eje X y en el apartado Value expresin coloque el campo $F{} para los valores del eje Y. Estos campos son precisamente los que se obtienen de la consulta que se estableci anteriormente, estos a su vez se mostrarn en la seccin detail del reporte.

Fuente reporte Ireport: cliPrestamo.jrxml

11. SUBREPORTES

Los pasos a seguir sarn los siguientes:

1. Disear el reporte maestro un elemento vaco de subreporte

2. Disear el subreporte como un reporte ms

3. Definir los enlaces entre el reporte maestro y el subreporte

Despus de llevar a cabo los puntos 1 y 2 debemos ser capaces de visualizar por separado reporte y subreporte usando iReport.

Inclusin del subreporte en iReport

La inclusin de un subreporte en un reporte usando iReport supone lo mismo que incluir un campo de texto o un texto esttico. Simplemente hay que pulsar el botn de Subreport tool de la barra de herramientas y despus arrastrar el ratn en la banda que nos interese hasta conseguir el tamao

deseado para nuestro subreporte.

La siguiente imagen muestra la parte de la barra de herramientas que incluye el botn de

subreportes:

Definir en el reporte maestro un parmetro, al que llamaremos SUBREPORT4, de tipo net.sf.jasperreports.engine.JasperReport.

Para ello, abriremos la vista de parmetros del men View y accederemos a la ventana de definicin de parmetros. En esta ventana, pulsaremos el botn New para acceder al dilogo que nos permitir definir nuestro parmetro. La siguiente figura intenta sintetizar lo dicho hasta ahora:

Dar clic Derecho del subreporte y acceder a sus propiedades.

En la pestaa Bajo el ttulo Connection / Datasource expression, vemos una lista desplegable. De ella, podemos seleccionar el mtodo que usar nuestro subreporte para obtener los datos. En nuestro caso, seleccionamos el elemento Use connection expression ya que los vamos a obtener de una base de datos mediante una conexin.

A continuacin, escribimos la expresin que nos va a llevar a la conexin deseada. En nuestro caso, el parmetro REPORT_CONNECTION.

Es decir, nuestro reporte maestro le va a pasar a nuestro subreporte la conexin referenciada en el parmetro REPORT_CONNECTION para que pueda ejecutar su consulta SQL.

Enlazar y subreporte al parmetro que enlazamos anteriormente (SUBREPORT4) y crear los parmetros que recibir el subreporte.

Si intentamos visualizar el reporte maestro desde iReport, veremos slo el reporte maestro. En el espacio del subreporte, no veremos nada.

La razn es simple, no le hemos pasado al reporte maestro todos los datos necesarios para que pueda mostrarnos el subreporte. Simplemente le hemos indicado dnde los puede encontrar. La

aplicacin iReport no sabe crear un objeto JaspeReport y pasrselo en un parmetro al reporte maestro.

Para ver el resultado final, escribiremos un pequeo programa en Java que nos acabar de llenar los huecos que iReport no puede.

Fuente reporte Ireportco: coBalanceGeneral.jrxml

Llamada al reporte ver en el archivo: BalanceGeneral.jsp

12. REPORTES DINAMICOS

El problema a solucionar es tener un solo reporte y pasarle dinmicamente el Query de consulta.

No definir una Query esttica Definir un parmetro sql_query de tipo string En lugar del Query esttico colocar la siguiente instruccin $P!{sql_query}

Fuente reporte Ireport: invInversiones.jrxmlLlamada al reporte ver en el archivo: inversiones.jsp

13. USO DE CLASES JAVA Definir un Directorio CLASSPATH , que contendr las clases compiladas.

Registrar las Directivas de importacin.

En el ejemplo se Accede al mtodo hello() de la clase Prueba. Devuelve un String

14. ENLACES DE INTERES

http://jasperreports.sourceforge.net/ http://www.forosdelweb.com/showthread.php?t=280528

DELTA21 WEB1