Ireport Tutorial v2 - 1
Ireport Tutorial v2 - 1
Ireport Tutorial v2 - 1
diseño iReport
www.ste.es
IReport Tutorial
1
INDICE
52350486.doc
IReport Tutorial
2
1.1 Introducción
iReport es una herramienta visual que sirve para generar ficheros XML (plantillas de informe)
que se puedan utilizar con la herramienta de generación de informes JasperReports.
iReport inicialmente se ha desarrollado en J++ por lo que su entorno de ejecución se limita a
plataformas Microsoft. En sus últimas versiones se ha publicado una versión 100% java con
lo cual se limita la restricción existente.
Este manual explica cómo configurar iReport para poder generar tanto ficheros XML
(plantillas base para JasperReport), como ficheros “.jasper” (plantillas compiladas).
52350486.doc
IReport Tutorial
3
52350486.doc
IReport Tutorial
4
52350486.doc
IReport Tutorial
5
“Nombre del informe”: Nombre interno que va a tener el informe en iReport. Debe coincidir
con el nombre del fichero XML
Hay que entrar en la pestaña “Más…”. Ahí aparece “Codificación XML”. Se debe poner
ISO-8859-1. Eso hace que se puedan escribir “ñ” y no de error.
Después de pulsar “OK”, es buena idea guardar el informe y ya se crea el “.XML” con el
mismo nombre que has puesto antes en el informe.
52350486.doc
IReport Tutorial
6
En ella aparecen marcadas diferentes áreas que llamaremos a partir de ahora “bandas”.
Cada banda se comporta de un modo diferente.
Hay que pensar que un informe de iReport está pensado a nivel de página. Lo que se define
es el aspecto general de una página y no se pueden definir (a priori) elementos fuera del
tamaño de la página.
El significado de cada banda es el siguiente:
Title : Esta banda se mostrará sólo una vez al principio del informe tenga las páginas
que tenga el mismo.
PageHeader : Esta banda es la cabecera de la página; se repite cada vez que se
pinta una página nueva.
ColumnHeader : Esta banda es la cabecera de las columnas. Inicialmente nosotros
hemos definido sólo una columna, por lo que su comportamiento es análogo a
PageHeader.
Detail : Esta banda es la encargada de mostrar los elementos que tienen alguna
repetición, estos elementos se mostrarán en los subinformes que explicaremos más
adelante. En esta banda solo se deben insertar los subinformes, ya que los mismos
son los encargados de hacer las repeticiones.
52350486.doc
IReport Tutorial
7
52350486.doc
IReport Tutorial
8
Para añadir un parámetro ($P), se pulsa sobre “Nuevo” y aparece otro cuadro de diálogo:
Para introducir los campos se pulsa sobre y aparece este cuadro de diálogo:
52350486.doc
IReport Tutorial
9
Para añadir un campo ($F), se pulsa sobre “Nuevo” y aparece otro cuadro de diálogo:
52350486.doc
IReport Tutorial
10
Para introducir una variable se pulsa sobre y aparece este cuadro de diálogo:
52350486.doc
IReport Tutorial
11
Para añadir una variable, se pulsa sobre “Nueva” y aparece otro cuadro de diálogo:
“Expresión” y “Valor inicial de expresión”: aquí se escribe una expresión. Haciendo clic
al botón derecho aparece un cuadro de diálogo que es el “Editor de expresiones”.
52350486.doc
IReport Tutorial
12
En este editor se pueden crear expresiones “complejas” del tipo “si A=2 entonces X sino Y”.
Este “Editor de expresiones” puede abrirse desde cualquier área de texto donde se pueda
escribir un $F, un $V o un $P.
52350486.doc
IReport Tutorial
13
Se coloca en la banda en la que se quiera mostrar y se hace doble click sobre él. Aparece el
siguiente cuadro de diálogo:
En la pestaña “Texto Estático” escribe el texto (sin comillas, ya que iReport sabe que sólo
puedes escribir texto).
En la caja “Imprime cuando sea verdadera la expresión”, hay que poner una expresión de
tipo booleano: “new Boolean ($P{nombre_parámetro})” (sin comillas), sabiendo que $P vale
“true” o “false”. Esa expresión puede ser compleja usando tanto && (and) como || (or).
52350486.doc
IReport Tutorial
14
Se coloca en la banda en la que se quiera mostrar y se hace doble click sobre él. Aparece el
siguiente cuadro de diálogo:
En la caja “Imprime cuando sea verdadera la expresión”, hay que poner una expresión de
tipo booleano: “new Boolean($F{CAMPO} != null)” (sin comillas). Esa expresión puede ser
compleja usando tanto && (and) como || (or).
En “Posición” se puede decidir si la posición del elemento será fija o por el contrario
flotante, con lo que se moverá según se hagan más o menos grandes los elementos que le
preceden.
Las demás opciones de esta pestaña son intuitivas, menos la de “Imprimir cuando cambie
el grupo”, que se explicará al mismo tiempo que los grupos.
52350486.doc
IReport Tutorial
15
52350486.doc
IReport Tutorial
16
2.9 Imágenes.
Todas las imágenes necesarias para las plantillas se encuentran en un mismo directorio en
un sistema de ficheros T3. Esa ruta ya está fijada dentro de Jasper, por lo que cuando
desde la plantilla se quiera introducir una imagen los pasos a seguir son los siguientes:
Dejar el fichero de imagen en “T3/modulos/plantillas/imagenes”
Escribir en el elemento de imagen de la plantilla en la casilla “Expresión de imagen” el
nombre del fichero con su extensión.
Por ahora, si se introducen imágenes en el informe éste sigue compilando, pero el “Viewer”
de Jasper falla por lo que no se puede mostrar, así que lo lógico será hacer las plantillas sin
imágenes, compilarlas y más tarde añadir las imágenes cuando se quiere ver el resultado
final.
Se pulsa sobre el icono
Se coloca en la banda en la que se quiera mostrar y se hace doble click sobre él. Aparece el
siguiente cuadro de diálogo:
”Expresión de Imagen”: Se
escribe el nombre del fichero
con su extensión .
52350486.doc
IReport Tutorial
17
2.10 Grupos.
Actualmente este recurso de iReport sólo se usa para hacer que los subinformes funcionen
tal como nosotros queremos en cada informe. La explicación del funcionamiento de los
grupos va asociada al funcionamiento de los subinformes por lo que serán explicados junto
con los mismos.
2.11 Subinformes.
Se usarán sólo cuando se quieran mostrar “n” ocurrencias de varios campos agrupados de
alguna forma determinada.
Hasta ahora hemos visto un informe como un fichero XML que guarda la información
necesaria para crear el mismo.
Ahora con los subinformes hay que cambiar ligeramente ese punto de vista. Si un informe es
lo suficientemente complejo para tener varios grupos de repetición, por ejemplo un
demandante al que se le quieren mostrar todos los idiomas que habla con sus características
(grupo1) y todos los trabajos que ha realizado con sus fechas de alta y baja en los mismos
(grupo2), hay que usar subinformes.
Un subinforme no es más que otro fichero XML asociado al fichero XML principal y que
comparte todos o parte de sus datos.
Tanto el informe como el/los subinforme/s se deben definir de un modo determinado para
que cumplan unos requisitos predeterminados por Jasper.
Primero vamos a enumerar los requisitos que debe cumplir el XML principal. Para hacer más
entendible la explicación vamos a seguir el proceso de creación del informe antes
mencionado.
2.11.1 Informe Principal.
En el informe principal se crearán tantos grupos como subinformes se necesiten. En este
caso serán 2, uno para idiomas y otro para ocupaciones.
Para crear el grupo se opera del siguiente modo:
Se pulsa sobre el icono y aparece el cuadro de diálogo:
52350486.doc
IReport Tutorial
18
”Nombre del grupo”: Nombre significativo para reconocer el grupo (por ejemplo Idiomas u
Ocupaciones)
“Expresión del grupo”: aquí se escribe literalmente “$V{REPORT_COUNT}” (sin las
comillas). Esto hace que se generen correctamente los saltos de página dentro del informe.
“Altura de la banda cabecera”: En esta casilla se debe poner una altura suficiente como
para meter el elemento de subinforme (Por ejemplo 20)
“Altura de la banda pie”: Inicialmente la pondremos a 0 porque no vamos a utilizarla.
El resto de las opciones deben quedar si chequear excepto “Empieza en nueva página” si lo
que queremos es que cada grupo empiece en una página nueva (eso dependerá de la
colocación que se quiera en cada informe).
52350486.doc
IReport Tutorial
19
Una vez tengamos creado el grupo, éste aparecerá en nuestra pantalla del siguiente modo:
Ahora tenemos que crear un elemento de subinforme dentro de ese grupo al que
posteriormente le asociaremos un fichero XML con el subinforme apropiado.
52350486.doc
IReport Tutorial
20
Se coloca en la banda de cabecera del grupo y se hace doble click sobre él. Aparece el
siguiente cuadro de diálogo:
52350486.doc
IReport Tutorial
21
52350486.doc
IReport Tutorial
22
52350486.doc
IReport Tutorial
23
52350486.doc
IReport Tutorial
24
Como se puede apreciar, hemos eliminado la banda de detalle porque el detalle lo va a hacer
el subinforme y por lo tanto ya no es necesaria.
2.11.2 Subinforme.
Un subinforme no es más que un informe normal pero que toma todos sus datos de otro
informe y es llamado desde él.
Jasper sólo puede tener asociado un fichero fuente (XML) a la hora de la generación del
informe, por lo que todos los ficheros de subinformes deberán estar pre-compilados (.jasper)
para que Jasper los entienda.
El fichero XML en el que definamos el subinforme debe llamarse igual que el fichero “.jasper”
que hemos definido en la llamada al subinforme desde el informe principal. En el caso de
idiomas el fichero se llamará “datos_idiomas.XML”. Cuando compilemos este fichero se
52350486.doc
IReport Tutorial
25
generará el fichero “datos_idiomas.jasper” que será el que utilizaremos para que Jasper
genere el informe.
Cuando definimos el tamaño del informe, el ancho del mismo a de ser el mismo que
el ancho del elemento “subreport” que hemos pintado en la pantalla del informe
principal.
Hay que ponerle todos los márgenes a 0, ya que los márgenes ya los tiene el informe
principal.
No se debe paginar. De eso se tiene que encargar el informe principal.
Los elementos que queramos que se repitan tienen que ir en la banda de detalle.
52350486.doc
IReport Tutorial
26
52350486.doc
IReport Tutorial
27
Pero esta vez “Momento de Evaluación” ha de ser “Report”, lo que hace que esa variable
se escriba una vez terminado el informe, con lo que contendrá el número de páginas del
mismo.
52350486.doc
IReport Tutorial
28
Aquí se puede elegir si sólo se quiere compilar (generar el .jasper) o además se quiere pasar
el informe a algún formato determinado (leer la lista desplegando la caja de selección).
Tanto el fichero “.jasper” (sólo compilar), como los ficheros de exportación se guardan en el
mismo directorio en el que esté la plantilla del informe (.XML).
52350486.doc
IReport Tutorial
29
52350486.doc
IReport Tutorial
30
1. Primera etapa:
Aplicable cuando se producen los cortes de texto.
Editar la plantilla de informe con la herramienta "iReport" versión 1.00 (1) ó superior. Y
guardarla. Es decir, la abres y la guardas (sobrescribiéndola)
(1) => A partir de esta versión de "iReport" se ha corregido la "funcionalidad" que omitía
cierta información que afectaba directamente a que se produjese el problema.
2. Segunda etapa:
Aplicable cuando el sistema entra en estado de bucle infinito.
Si estamos aquí, es que el informe tiene complejidad añadida.
Posiblemente la situación está en que el ajuste que se está realizando (el aumento de
tamaño vertical) no es suficiente para los datos que se están utilizando en el relleno del
informe.
Para solucionarlo hay que editar la plantilla (con "iReport" versión 1.00 o superior o
directamente el XML con un editor) y aumentar el parámetro de altura del campo de
texto.
Visto desde el XML asociado a la plantilla de informe es el siguiente código:
<textField isStretchWithOverflow="true" height="18" ...>
...
</textField>
Una manera de calcular qué altura (height) indicar es utilizar la siguiente fórmula:
• tdl = tamaño de letra. Se corresponde con al atributo "size" de la etiqueta “<font>" el
campo de texto.
52350486.doc
IReport Tutorial
31
Por ejemplo, si esperamos que haya tres líneas de texto como máximo y nuestro
tamaño de letra es 8, la altura sería:
altura = (8 * 3) + 2 = 26
Importante: esta fórmula da una estimación del valor a utilizar (). En caso de que el
valor resultante no fuese suficiente hay que incrementarlo.
52350486.doc