Las características estándar de la biblioteca de informes de código fuente abierto JasperReports permiten crear salida bastante compleja. Si necesita informes más sofisticados, puede crear un manejador de informes de EGL.
El manejador de informes de EGL es un componente manejador de EGL de tipo JasperReport. El motor de JasperReports considera el manejador de informes como scriptletClass. Para los usuarios no familiarizados con Java, esto implica que el archivo de diseño de JasperReports puede llamar a métodos (similares a funciones) del manejador de informes.
Puede crear el manejador de informes desde un archivo vacío o utilizar el asistente de EGL Manejador de informes nuevo. El asistente de manejador de informes ofrece un esquema inicial que incluye el nombre de cada función predefinida (relacionada con eventos) que el motor de JasperReports puede invocar al confeccionar el informe. Para obtener una lista completa de estos eventos, consulte la sección Funciones predefinidas del manejador de informes de EGL.
EGL tiene diversos nombres de funciones predefinidas que corresponden a eventos que pueden producirse cuando JasperReports confecciona un informe. Tales eventos incluyen entrar o salir de una página, iniciar o finalizar un elemento de línea, etc. Cuando ocurre uno de estos eventos, el motor de JasperReports comprueba si el manejador de informes contiene una función que corresponda al evento. Si es así, el motor de JasperReports invocará automáticamente dicha función.
Uno de los eventos que EGL reconoce es la inicialización de un grupo definido por usuario. El código <group> del archivo fuente de diseño XML permite especificar una expresión que define un grupo. Por ejemplo, puede agrupar los clientes cuyos números van de 2000 a 2999. Puede imprimir subtotales para el grupo mediante los códigos estándar del código fuente de diseño XML, o realizar manipulaciones más complejas mediante el manejador de informes.
No puede realizar ninguna codificación Java compleja (multilínea) dentro del propio archivo fuente XML de JasperReports. Sin embargo, escribiendo código EGL en el manejador de informes puede crear funciones a las que el motor de JasperReports podrá acceder durante la ejecución. Estas funciones no tienen que estar necesariamente asociadas a ningún evento específico ni invocarse desde una de las funciones predefinidas relacionadas con eventos. Por ejemplo, puede crear una función que busque una variable SQL de tipo DATE y devuelva la fecha en una serie de caracteres formateada. Puede llamar a esta función directamente desde el código fuente XML que imprime el detalle de una transacción.
la operación funciona debido a que EGL genera una scriptletClass desde el archivo fuente del manejador de informes. La scriptletClass es una clase Java a la que el motor de JasperReports puede acceder y, durante la impresión, el motor puede invocar los métodos de dicha clase. Esos métodos son las funciones que ha creado.
El manejador de informes tiene pleno acceso a otros recursos de EGL, como por ejemplo componentes de registro, funciones del sistema y bibliotecas.
Para obtener más detalles y ejemplos, consulte los apartados Crear un manejador de informes de EGL y Funciones adicionales del manejador de informes de EGL.
Durante la generación, EGL utiliza el archivo fuente manejador de informes de EGL para crear una clase JRDefaultScriplet, que es una subclase de la clase de scriptlet de JasperReports. Esa subclase contiene un método para cada función que ha codificado. Durante la ejecución, el motor de JasperReports comprueba la existencia de un atributo scriptletClass en el código <jasperReports>. Si este atributo existe, el motor de informes carga la clase de scriptlet y pone los métodos de la clase a disposición del diseño de informes. Para obtener más información sobre los scriptlets de JasperReports y la clase de scriptlet, consulte la documentación de JasperReports.
Cuando EGL genera archivos .java, los nombres de clase están en minúsculas. Asegúrese de cualquier nombre de clase especificado en un documento de diseño XML esté en minúsculas.
Conceptos relacionados
Visión general de los informes de EGL
Visión general del proceso de creación de informes de EGL
Manejo de eventos en EGL
Tareas relacionadas
Crear un manejador de informes de EGL
Crear subinformes
Escribir código para controlar un informe
Consulta relacionada
Funciones adicionales del manejador de informes de EGL
Biblioteca ReportLib de EGL
Funciones predefinidas del manejador de informes de EGL