Mostrando entradas con la etiqueta JasperReport. Mostrar todas las entradas
Mostrando entradas con la etiqueta JasperReport. Mostrar todas las entradas

lunes, 27 de mayo de 2013

Introducción a la biblioteca JasperReports y la herramienta iReport.

clip_image001

JasperReports está considerada como una de las mejores bibliotecas de software libre para generar reportes [1]. Tiene la habilidad de entregar contenido enriquecido al monitor, a la impresora o a ficheros PDF, HTML, XLS, CSV y XML. Está escrito completamente en Java y puede ser usado en gran variedad de aplicaciones de Java, incluyendo Java EE o aplicaciones web, para generar contenido dinámico. Su propósito principal es ayudar a crear documentos de tipo páginas, preparados para imprimir en una forma simple y flexible.

JasperReports se usa comúnmente con iReport Designer [2], un constructor / diseñador de informes visual, poderoso, intuitivo y fácil de usar. Este instrumento permite que los usuarios desarrollen visualmente informes complejos con cartas, imágenes, subinformes y otros [3]. iReport está además integrado con JFreeChart, una de la biblioteca gráficas OpenSource más difundida para Java. Los datos para imprimir pueden ser recuperados por varias vías como pueden ser: JDBC, TableModels, JavaBeans, XML, etc.

Entre las principales características de iReport podemos destacar las siguientes:

  • 100% escrito en JAVA y además OPENSOURCE y gratuito.
  • Maneja todas las etiquetas de JasperReports.
  • Permite diseñar con sus propias herramientas: rectángulos, líneas, elipses, campos de los textfields, cartas, subreports (subreportes).
  • Soporta internacionalización nativamente.
  • Browser de la estructura del documento.
  • Recopilador y exportador integrados.
  • Soporta JDBC.
  • Soporta JavaBeans como orígenes de datos (éstos deben implementar la interface JRDataSource).
  • Incluye Wizard’s (asistentes) para crear automáticamente informes, plantillas y sub-reportes.
  • Facilidad de instalación.

Estas potencialidades se pueden combinar con JasperServer que proporciona una interfaz basada en web para gestionar, programar y ejecutar los informes, un repositorio para almacenar todos los recursos del informe como imágenes, fuentes, fuentes de datos y mucho más, un servicio de seguridad para decidir quién puede ejecutar que informe, y un servicio web API para ejecutar los informes de aplicaciones externas (por lo que puede generar informes de cualquier tipo de entorno, como PHP o. NET).

La herramienta iReport Designer le permite diseñar informes JasperReports, así como también permite ejecutarlos y generar la salida en una aplicación Java, y JasperServer permite a los usuarios finales y las aplicaciones externas acceder, ver y publicar sus informes de forma segura.

Ciclo de Vida de un Reporte usando iReport Designer.

Cuando se diseña un informe con iReport Designer se crea un archivo JRXML, que es un documento XML que contiene la definición del diseño del informe. La disposición de los componentes está diseñada completamente de una manera visual, por lo que no debe preocuparse por la estructura real del archivo JRXML. Antes de ejecutar un informe, el JRXML deberá elaborarse en un objeto binario llamado archivo de Jasper. Esta recopilación se hace por razones de rendimiento. Los archivos Jasper son lo que usted necesita enviar con su solicitud, a fin de ejecutar los informes.

La ejecución de informes se realiza pasando un archivo de Jasper y una fuente de datos para JasperReports. Hay un montón de tipos de fuentes de datos, es posible llenar un archivo Jasper de una consulta SQL, un archivo XML, un archivo csv, una consulta HQL (Hibernate Query Language), una colección de JavaBeans, etc .. Si usted no encuentra una fuente de datos adecuada, JasperReports es muy flexible y permite que usted escriba su propio origen de datos personalizado. Con un archivo de Jasper y una fuente de datos, JasperReports es capaz de generar el documento final en el formato que prefiera.

iReport Designer también permite configurar las fuentes de datos y utilizarlas para probar sus informes. En muchos casos, los asistentes por datos pueden ayudarle a diseñar sus informes mucho más rápido. iReport Designer incluye el propio motor JasperReports para hacerle una vista previa del resultado del informe, probar y refinar sus informes.

clip_image003

Figura 1 Proceso de compilación

Interfaz de usuario

Podemos asegurar que iReport Designer es un potente entorno para el diseño de informes. Los informes pueden ser diseñados desde cero o desde una de las muchas plantillas listas para usar que están disponibles. iReport Designer le ayudará durante todas las fases de la elaboración del informe: Diseño JRXML, compilación Jasper, ejecución de informes y exportación de documentos o visualización. La figura 2 muestra los principales componentes de la interfaz de usuario de iReport Designer.

clip_image005

Una breve descripción de los principales componentes de la interfaz de usuario de iReport Designer sería la siguiente:

  • El Diseñador de Informes (Report Designer) es donde se diseña visualmente el informe, arrastre, posicionamiento, alineación y cambiar el tamaño de los elementos del informe.
  • El Inspector de Informe (Report Inspector) muestra la estructura completa del informe que se compone de muchos objetos (por ejemplo, campos, parámetros y variables), bandas (que son las secciones del documento) y elementos (como campos de texto, imágenes o gráficos).
  • La paleta de elementos (Elements Palette) contiene los elementos que se pueden arrastrar dentro de una banda para mostrar los datos.
  • La hoja de propiedades (Property Sheet) se utiliza para configurar las propiedades del componente seleccionado en el informe (por ejemplo, un campo, elemento, banda, grupo, u otros).

A modo de conclusión queremos recomendarle el uso conjunto de la biblioteca JasperReports y la herramienta iReport Designer, en próximas entradas estaremos proporcionando más información sobre este tema.

{ Leer Más }


jueves, 23 de mayo de 2013

Arquitectura genérica para el desarrollo de aplicaciones empresariales.

En varias entradas del blog hemos abordado temas que tienen que ver con la persistencia de los datos en almacenes relacionales y hemos visto el uso de diferentes tecnologías y enfoques para resolver el tema de la persistencia.

Que se toquen estos temas desde lo básico a lo más usado actualmente no es un hecho casual si no que forma parte de una estrategia de ir tocando todos los puntos que forman parte de una arquitectura genérica que se puede usar para el desarrollo de aplicaciones empresariales.

Digo arquitectura genérica primero porque es ampliamente usada por diferentes empresas de desarrollo de software y segundo porque a partir de ella se pueden obtener múltiples variaciones particulares en función del dominio del negocio que se ataque.

Por allá por el 2010 en el sitio de adictos al trabajo sacaron una propuesta de arquitectura que hasta la fecha la considero bastante adecuada para desarrollos basados en JAVA. La pueden ver en esta entrada.

clip_image001

Fig.1. Arquitectura propuesta por Autentia.

En la entrada donde se publica se hace un análisis muy bueno de cada componente y de posibles variantes que existían en la fecha de publicación.

En ese sentido creo que hasta el día de hoy no cambiaría casi que ninguno de los componentes con sus excepciones claro:

En el tema de los servicios web y soluciones de integración e interoperabilidad se ha avanzado bastante por lo que sustituiría los siguientes elementos:

o BPM: ellos proponen JBPM o Intalio. Yo pondría algo como Bonita, Activiti o una herramienta que va surgiendo ahora y es el Bussiness Process Server de WSO2.

o jUDDI: pondría otra herramienta de WSO2, el Governance Registry o GREG. Que expone una UDDIv3 pero que además implementa el WS-Discovery.

o OpenESB: lo cambiaría sin problemas por el ESB de WSO2.

o Servicios Web: siguiendo con la tónica usaría el Application Server de WSO2 más el conjunto de herramientas que necesite para el desarrollo y despliegue de servicios web.

o Subversion: lo cambiaría por Mercurial o por Git.

o En la capa de presentación es donde más debate podría haber. Aun estas tecnologías tienen su fuerza aunque están surgiendo soluciones como Vaadin y ZK que tienen sus pros y sus contras, y a las cuales dedicaré otras entradas.

La capa de persistencia es obvio que la mantendría. Hasta el momento Hibernate como implementación del estándar JPA sigue siendo la mejor solución.

El uso de Spring para la capa de lógica de negocio es evidente que sigue siendo un “top priority”.

IReport lo continuaría seguro, con JasperReport como librería para generar los reportes.

El tema de integración continua es otro de los fuertes de esta propuesta que se sigue manteniendo: el uso de Maven, ya lo hemos tocado en este blog, Hudson que actualmente es Jenkins junto con Sonar son las herramientas básicas para la integración continua.

En el caso de la herramienta para portales no podría estar más de acuerdo. Liferay sigue de líder en este tema, junto con Alfresco en la gestión de contenidos. Y claro en el Business Intelligence la suite de Pentaho llegó para quedarse. Por ultimo como plataforma de aprendizaje y e-learning moodle es la elección por defecto. Ah y claro en las ETL sugieren a Talend, esa si se las debo pues no he trabajado en esta tecnología.

{ Leer Más }


IconIconIcon