Manual ireport

Solo disponible en BuenasTareas
  • Páginas : 21 (5011 palabras )
  • Descarga(s) : 0
  • Publicado : 26 de mayo de 2011
Leer documento completo
Vista previa del texto
JasperReports, iReport y Subreportes
Francesc Ros és A lbiol Novie mbr e 2004 v. 1.0

INTRODUCCIÓN Y JUSTIFICACIÓN
Últimamente, han aparecido en los fórums de javaHispano diversas preguntas sobre un mismo tema: la incorporación de subreportes en JasperReports. Hasta la fecha, no he tenido que usar subreportes, pero siempre hay una primera vez y, finalmente, me he tenido que enfrentar a ello.Lo primero que hice fue buscar información al respecto y me topé con la cruda realidad: Hay poca o no me alcanza para lo que quiero hacer. En la documentación de JasperReports, y más concretamente en el documento Tutorial (http://jasperreports.sourceforge.net/tutorial/index.html), aparece un apartado que lleva por título “Subreports”, pero al acceder a él me encuentro con tres líneas y un aviso enrojo: Documentation pending.... Afortunadamente, en las demos de JasperReports aparece un ejemplo que proporciona varias ideas al respecto. Acto seguido, voy a ver qué hay en mi interficie gráfica favorita para la generación de reportes: iReport-Designer for JasperReports (http://ireport.sourceforge.net/). Allí encuentro más información al respecto. En el manual, sólo dice que iReport soportasubreportes, pero encuentro un par de tutoriales1 sobre el tema. El primero, How to create a subreport (http://ireport.sourceforge.net/subreport_tutorial.zip), de Shailesh Kadam, es del 2003 y lo encuentro un poco incongruente. Se basa en dos tablas, una de empleados y otra de direcciones, y nos dice que un empleado puede tener cero o más direcciones asociadas. La verdad es que no sé cómo asociadirecciones a un empleado, ya que no hay ningún campo que enlace ambas tablas ni tabla alguna que enlace empleados y direcciones. Además, si existiera el enlace, no haría falta el uso de subreportes para mostrar las direcciones asociadas a un empleado. Un simple grupo nos resolvería el problema. El segundo es un vídeo creado por unos usuarios hawaianos(http://ireport.sourceforge.net/swf/Subreport_viewlet_swf.htm) y parece más reciente. Una vez más, nos encontramos con un ejemplo basado en una relación maestro-detalle: disponemos de una tabla de países y otra de estados o provincias de cada país. El tutorial muestra la mecánica bastante bien, pero el ejemplo, a mi entender, no es del todo bueno porque puede resolverse usando grupos. El objetivo de este tutorial es, pues, intentar cubrir lafalta de documentación sobre el uso de subreportes en JasperReports. No pretendo en ningún momento que este tutorial se convierta en un tutorial de JasperReports ni de iReport. Doy por supuesto que el lector conoce el funcionamiento de ambos productos y que sólo desea profundizar en el uso de subreportes. Tampoco quiero cubrir todas las posibilidades de los subreportes. Me centraré en un ejemplo
1Parece ser que la Real Academia de la Lengua Española todavía no acepta la palabra tutorial (-es). Sin embargo, yo la uso porque entiendo que un tutorial es un subtipo de manual y no hallo otra palabra en castellano que pueda usar.

1 de 18

concreto que, creo y deseo, sirva de inspiración al lector para usar subreportes.

ESCENARIO
Nuestro escenario va a ser un proceso de matrícula a unaserie de cursos. Una persona se matricula a uno o más cursos y debe saber qué le va a costar en total. La inscripción en un curso supone el pago de una matrícula inicial y una serie de mensualidades. Nuestro informe debe generar una simulación de la factura de la matrícula y, además, mostrar el precio de cada mensualidad, el total de mensualidades a pagar y el importe total de mensualidades. Paraello, hemos diseñado una base de datos con la siguiente estructura:

Figura 1: Esquema de tablas

El significado de la mayor parte de las columnas de las tablas se puede deducir fácilmente de su nombre. Quizá la tabla menos clara sea la de Cursos. Comento, pues, las columnas que la forman: Colu mna ID NOMBRE MATRICULA MENSUALIDAD Com entario Es la clave primaria. Un entero autoincrementado...
tracking img