Sunteți pe pagina 1din 13

TUTORIAL IREPORT 4.5.

Iniciar la aplicación dándole doble click al icono:

Crear un nuevo reporte.


Ingresar el nombre del reporte

Siguiente

Terminar
La página se divide en 7 secciones:

- Titulo: El contenido sólo aparece en la primera página. Ejemplo, titulo del


documento, código de barra.
- Page Header: El contenido aparece en todos las páginas. Ejemplo, datos de una
factura.
- Column Header: El contenido aparece en todas las páginas. Es donde se
agregan los nombres de las columnas de un listado.
- Detail 1: El contenido aparece en todas las páginas. Es donde se agregan los
valores de las columnas de un listado.
- Column Footer: No la he ocupado.
- Page Foter: El contenido aparece al pie de todas las páginas. Ejemplo, contador
de páginas 1/7.
- Summary: El contenido aparece en la última página. Ejemplo, sumatoria de
montos del listado.
Al lado derecho aparece un contenedor de las secciones y conjuntos de objetos que se
incluyen en cada página.

- Parameters: Es para crear parámetros que sirven para definir un valor fijos que
se utilizará en el reporte. Ejemplo, SUBREPORT_DIR, el cual, tiene la ruta
donde se encuentra el subreporte si es que lo tuviere. Es para alojar valores
dinámicos que navegan entre la clase java y el reporte. Ejemplo, valor para
generar código barra.
- Fields: Es donde irán quedando los campos dinámicos que se agreguen a la
página, estos son los del xml que se utilizará para mapear los datos. Ejemplo,
rut, nombre, apellido, etc.
- Variables: No lo he utilizado
- Cada elemento que se agregue en la página, ira apareciendo en cada sección que
esta alojado. Ejemplo, código de barra, quedará almacenado en el que dice title.

Sección Paleta:

Aquí se encuentra los elementos que pueden ser utilizados para ir formando un reporte.
Para agregar al reporte, sólo basta con pinchar y arrastrar.
Barra de vistas del reporte

- Designer: Vista para ir diseñando gráficamente el reporte.


- XML: Vista para manipular el reporte mediante un archivo xml.
- Preview: Muestra como se verá finalmente el reporte.
- El martillo con la hoja: Es para compilar los cambios y generar archivo .jasper

Para agregar texto, se utiliza los siguientes objetos de la paleta:

- Static Text: Texto fijo.


- Text Field: Objeto asociado a un Field encontrado en el contendedor del lado
izquierdo.

Si se quiere que un objeto se vea dependiendo de alguna condición, primero se debe


seleccionar y luego ir al contenedor “Properties” que esta debajo de la Paleta de objetos
y se debe elegir la opción “Print When Expression”.

Presionar botón al lado derecho:

Se elige una variable, campo o parámetro con el cual se creará la condición y se anota la
expresión. Ejemplo: $V{PAGE_NUMBER}==1 Esto indica que sólo se vea en la
primera página.
CREAR FIELD Y AGREGARLOS AL REPORTE:

En este ejemplo utilizaremos un xml con la siguiente estructura:

<?xml version="1.0" encoding="iso-8859-1"?>


<OrdenProduccionDto>
<nroOrdenProduccion/>
<notaVenta/>
<temas>
<registro>
<id/>
<cantidad/>
<temas/>
<nombreTema/>
<ancho/>
<largo/>
<excedente/>
<mts2/>
<precioUnitario/>
<precioTotal/>
</registro>
</temas>
</OrdenProduccionDto>

Se deben crear en la sección Field, todos los elementos del xml que estén asociado a la
estructura principal (no el listado):

Seleccionar el Field nuevo y luego ir al contenedor Properties:

Ahora es necesario dejar los Field en la sección deseada. Para esto, se debe tomar y
arrastrar el Field hasta el reporte.
CREAR UN LISTADO.

Los listados deben crearse con un subreporte.

Primero se debe crear un nuevo reporte, el cual, sólo contendrá las columnas y valores
de los campos (Column Header y Detail 1).

Una vez creado el nuevo reporte, se deben eliminar todas las secciones a excepción de
Column Header y Detail 1.

Para eliminar una sección en la página, se debe presionar el botón derecho del mouse
sobre ella y elegir la opción Delete Band.

Con esto tendremos lo siguiente:


Para que no aparezcan los márgenes dentro del subreporte ubicado en el reporte
principal, es necesario eliminarlos.

Para ello es necesario hacer doble click fuera del la página del subreporte, es la sección
ploma y luego un click con el botón derecho sobre la sección ploma y elegir la opción
Page Format:

Top, Bottom, Left y Right deben quedar en cero.


El tamaño de la hoja dependerá de cómo se quiere que se vea el listado en el reporte.
Luego se deben crear los Field en base al xml anteriormente presentado.

Se deben crear en la sección Field, todos los elementos del xml que estén asociado al
listado:

Seleccionar el Field nuevo y luego ir al contenedor Properties:

Etc…

Ahora es necesario dejar los Field en la sección Detail. Para esto, se debe tomar y
arrastrar el Field hasta el subreporte:

Los que tiene el signo peso delante, es donde aparecerá los valores. El de arriba, se debe
cambiar el texto que se desea para la presentación.

Una vez cargado los Fields, se debe reacomodar en el bode superior de cada sección,
quedando de la siguiente forma:
Para que se ajusten los bordes de cada sección a la altura exacta en base al alto del texto,
se debe dar doble click a los bordes inferiores de cada sección:

Para que los campos se auto ajusten al alto en base a un ancho fijo, se debe seleccionar
el campo e ir a Properties:

Elegir la propiedad “Stretch Type” y el valor : Relative to Band Height


Tickear la opción “Blank When Null”.

Para que queden bien presentado, se debe seleccionar cada elemento y dar formato
(color, tamaño, tipo de letra, etc)

Ahora hay que volver al reporte principal y elegir el siguiente icono ubicado en la paleta
y arrastrarlo a la sección Detail. (La sección Column Header debe ser eliminada del
reporte principal).
Los subreportes que alojaran listados solo deben ir en la sección Datail.

Buscar y elegir el subreporte creado.


Siguiente

Seleccionar “Don’t use any connection or data source”


Siguiente

Siguiente
Terminar.
Ajustar subreporte en sección Detail. No importa el alto, ya que la sección Detail se
auto ajusta en base al subreporte.

Seleccionar el subreporte e ir a Properties:

En la propiedad “Connection type” y elige: Use a datasource expresión


En la propiedad “Data Source Expression” escribir lo siguiente:

((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).
subDataSource("/OrdenProduccionDto/materialesImpresion/detalle")

La última sección de esta expresión debe llegar hasta el tag que se repite para formar el
listado.

Seleccionar el parameters “SUBREPORT_DIR” e ir a Properties:

Cambiar el valor “Default Value Expression” y dejarlo como aparece en la imagen.

Guardar todo y compilar el reporte (el subreporte se compila automáticamente).

Tomar el archivo .jasper y dejarlo en la carpeta “reporte/archivosJrxml” del proyecto


Exportar. Actualizar proyecto para que tome el nuevo archivo.

Crear un DTO y alojarlo en el siguiente paquete “cl.reporte.dto”


En el paquete “cl.reporte” crear la clase que contiene el método para exportar asociado
al reporte.
El método tiene la siguiente estructura:
public void exportarCotizacion(HttpServletRequest request, HttpServletResponse response,
CotizacionDto cotizacion, String tipoArchivo) {
try {
String xmlFile = BeanXMLMapping.bean2Xml(cotizacion);
//System.out.println(xmlFile);
ExportarArchivo expArch = new ExportarArchivo();

expArch.exportar(request, response, xmlFile, "Cotizacion",


cotizacion.getNroCotizacion()+"", tipoArchivo, null);
} catch (Exception e) {
System.out.println("Error Cotizacion.exportarCotizacion() = "
+e.getMessage());
}
}

Todo lo que esta en verde debe cambiar en base al reporte.

Agregar un nuevo método en la clase “Exportar” ubicada en el paquete “cl.proyecto” y


setear los valores del DTO.

Agregar en el archivo index un nuevo link.

Para saber el XML que se utilizará y así saber los campos en los Field, descomentar la
línea:
//System.out.println(xmlFile);

S-ar putea să vă placă și