Ana ya tiene una idea bastante clara de qué es un informe, cómo hacer un diseño complejo, bien porque utilice estructuras elaboradas como agrupamientos o porque utilice una consulta que involucre varias tablas. También ha aprendido a añadir elementos que lo hagan más completo y atractivo, como gráficos e imágenes, y todo esto sacando el mejor partido a las posibilidades que le ofrece la herramienta que ha escogido.
Ahora su intención es unir los informes que necesita a la aplicación de usuario que está elaborando. Juan le explica que el diseño de los informes con los que trabaja se almacenan en archivos xml, pero que antes de poder utilizarlos se deben compilar para optimizar el proceso de mezcla con los datos de la base de datos y la carga en la aplicación. Antes de avanzar, Ana comprende que debe analizar todo esto con un poco más de detalle.
Los informes de iReport se almacenan en archivos XML con extensión .jrxml. Un archivo jrxml se compone de un conjunto de secciones, algunas de ellas relativas a las características físicas del informe, como las dimensiones de la página, el posicionamiento de los campos, y la altura de las bandas, otras son relativas a las características lógicas, tales como la declaración de los parámetros y variables, y la definición de una consulta para la selección de datos.
Al hacer clic en el botón de vista previa en la barra de herramientas de diseño, iReport realiza una serie de operaciones para crear el informe final. La primera operación consiste en compilar el archivo fuente jrxml en un archivo de Jasper. Esta compilación se realiza por motivos de rendimiento. Si la compilación se ejecuta correctamente, el archivo producido Jasper se carga y se llena con la conexión activa o fuente de datos.
Durante la compilación del archivo jrxml, el archivo XML se analiza y se carga en un objeto JasperDesign, una estructura de datos que permite representar el contenido XML en la memoria. Independientemente del lenguaje que se utiliza para las expresiones dentro del archivo jrxml, JasperReports crea una clase especial de Java que representa la totalidad del informe, se compila, se instancia y se serializa en un archivo Jasper, que será el que se cargue en una aplicación posteriormente.
A la hora de ejecutar un informe necesitaremos este archivo de Jasper y una fuente de datos para JasperReports. Hay muchos tipos de fuentes de datos, es posible llenar un archivo de Jasper de una consulta SQL, un archivo XML, un archivo CSV, una colección de JavaBeans, etc., incluso es posible elaborar una fuente de datos personalizada. Con un archivo de Jasper y un origen de datos, JasperReports es capaz de generar el documento final en el formato que prefiera.
El archivo Jasper no contiene recursos externos, como puedan ser las imágenes utilizadas en el informe, paquetes de recursos para ejecutar el informe en diferentes idiomas, scriptlets extra u hojas de estilos externas. Todos estos recursos deben estar ubicados en tiempo de ejecución y ser proporcionados por la aplicación, como veremos a continuación.