SIU-Guarani/Version3.21.0/personalizaciones/impresiones
Personalizar impresiones
Guaraní realiza la impresión de comprobantes y reportes a partir de documentos PDF. Estos son creados utilizando JASPER, un motor de generación de reportes basado en JAVA soportado por SIU-Toba.
La personalización de cualquier impresión en Guaraní dependerá de lo que se quiera personalizar, aunque comúnmente comprende desarrollar una plantilla JASPER para la impresión del formato deseado. Para ésto se utiliza iReports para la edición de las mismas, en archivos .jrxml, que luego se compilan generando sus correspondientes archivos .jasper
En términos generales, tanto agregar como modificar una plantilla existente, implicará que se agreguen los archivos .jrxml y .jasper propios correspondientes a la misma, en el path: <path proyecto Guaraní>/personalizacion/exportaciones/jasper. Si se trata de un comprobante nuevo tendrá su nombre propio, en caso de estar personalizando uno existente, tendrá el mismo nombre que el provisto por Guaraní. De esta forma, el sistema al intentar levantar el archivo asociado al comprobante que se desea imprimir, verifica en primera instancia si existe un archivo con ese nombre en la carpeta indicada de personalizaciones, con lo cual se imprimirá la versión propia. En otro caso, utilizará la plantilla asociada en Guaraní para la impresión.
Dentro de todas las impresiones que se realizan en Jasper en el sistema: Constancias de solicitud manual, Certificados de Egreso, Actas, Reportes, etc, en Guaraní se utilizaron dos tipos de .jrxml diferentes, en cuanto a la forma en que se envían y recuperan los datos a mostrar:
- Lenguaje Sql:
- En esta alternativa, en el archivo .jrxml se realiza una consulta sql a la base de datos de negocios de Guaraní para obtener los datos a mostrar en el reporte o constancia, a partir de los parámetros recibidos. Editando el jrxml desde el iReports, en la Report Query se define el query language como Sql y se especifica la consulta con los campos que se desean recuperar.
- Lenguaje Xml:
- En este caso, además de los parámetros básicos que se envían, se pasan los datos desde el código PHP a Jasper en formato xml, para lo cual Toba crea un archivo temporal (en <path proyecto Guaraní>/temp), que se elimina una vez generado el pdf. En la Report Query, se define el query language como XPath y se especifica dónde se ubicará el contenido ('/tabla/datos/fila'). Esto permite definir los diferentes campos a utilizar para mostrar en el contenido de la plantilla, con valores como por ej: para el campo: id_clave, valor: dato[@clave="id_clave"]/@valor.
Esta alternativa se utiliza generalmente cuando en la operación del sistema desde la cual se realiza la impresión, se previsualizan en pantalla los mismos datos que desean mostrarse en el pdf. Por ejemplo, para el caso de un reporte básico, o en Actas, tanto de Exámenes como Cursadas, donde en la operación se visualiza el cuadro de Alumnos con sus datos asociados.
- En este caso, además de los parámetros básicos que se envían, se pasan los datos desde el código PHP a Jasper en formato xml, para lo cual Toba crea un archivo temporal (en <path proyecto Guaraní>/temp), que se elimina una vez generado el pdf. En la Report Query, se define el query language como XPath y se especifica dónde se ubicará el contenido ('/tabla/datos/fila'). Esto permite definir los diferentes campos a utilizar para mostrar en el contenido de la plantilla, con valores como por ej: para el campo: id_clave, valor: dato[@clave="id_clave"]/@valor.
Dentro del código de la clase PHP en la cual se implementa la impresión (asociada al componente Toba que define el evento), se encontrará el método: vista_jasperreports, dónde se codifican los detalles de la misma. En dicho método se incluirá la asociación con la plantilla .jrmxl correspondiente, a partir de las sentencias:
$report->set_path_reporte($path);
(Observar que en el método get_path_reporte_jasper de la clase guarani_nucleo.php es dónde se define el mecanismo de buscar primero el archivo .jrmxl en la carpeta de personalizaciones, o tomar la plantilla brindada por Guaraní, en caso de no existir la propia.)
Aquí también se realizará el pasaje de parámetros a la plantilla con sentencias del estilo:
Y, para el caso de la segunda alternativa, también se encontrarán las sentencias donde se asocia el xml correspondiente, por ejemplo:
$report->set_xml(utf8_e_seguro($xml));
Se utilizará <path proyecto Guaraní> para referirse al path donde se encuentra instalado el SIU-Guaraní Gestión.
Personalizar certificados y constancias
Para el caso particular de las impresiones de Constancias y Certificados solicitados de forma manual desde Guaraní, además de generar el archivo .jasper correspondiente al formato deseado para la impresión, pueden requerirse algunos pasos adicionales de configuración desde el sistema. Para ser más específicos, vamos a dar ejemplos prácticos para personalizar y generar nuevos Certificados en el sistema.
A lo largo de la descripción de los casos se utilizará <path proyecto Guaraní> para referirse al path donde se encuentra instalado el SIU-Guaraní Gestión.
CASO 1: Agregar un nuevo certificado
Los pasos a seguir son:
- Desarrollar una plantilla JASPER en iReports para el certificado en cuestión. Para realizar esta tarea se recomienda tomar como partida alguna de las plantillas proporcionadas por el sistema y realizar todas las modificaciones deseadas. Tener en cuenta las siguientes cuestiones:
- Guardar la constancia con un nombre diferente de los existentes en el directorio: <path proyecto Guaraní>/personalizaciones/exportaciones/jasper
- La constancia (plantilla JASPER) recibe como parámetros fijos siempre el logo (path) y el nro. de solicitud (registro de la tabla sga_constancias_solicitud). Este último se puede utilizar en una consulta de BD para obtener datos a mostrar en la constancia (ver constancias existentes). Recordar que además de los provistos, se pueden enviar más parámetros que los antes mencionados.
- No hay restricción con ninguno de los objetos ni funcionalidades soportadas por la versión anteriormente mencionada de iReports (v5.6). Es importante utilizar ese editor y versión para el desarrollo del reporte, de lo contrario pueden ocurrir errores.
- Agregar la plantilla generada en el punto anterior al sistema a través de la operación "Administrar Plantillas". En el nombre del archivo no incluir el PATH.
- IMPORTANTE: Poner "Si" (valor por defecto) en el combo que indica si se permite asociar esta plantilla a una constancia para solicitud 'manual'. Como ejemplo, se recomienda analizar las constancias ya existentes en la instalación del sistema.
- Una Constancia o Certificado puede tener asociado un formulario donde se pidan más datos de los que se le pasan por defecto (en caso de que sea necesario) o validaciones sobre las actividades académicas del alumno, etc. Para ésto, se debe desarrollar un componente (CI) TOBA y agregar el código correspondiente. Anexo.
- Agregar la Constancia o Certificado nuevo asociándole la plantilla desarrollada y creada en el punto anterior en la operación "Administrar Constancias y Certificados" del sistema. Si se desarrolló un formulario específico para este fin, asociarlo también mediante la operación mencionada.
CASO 2: Personalizar un certificado existente
Para dar un mayor detalle en esta tarea, a este caso lo vamos a dividir en 3 sub-casos.
Reemplazar la constancia o certificado provisto por el sistema por uno nuevo
Este proceso implica simplemente:
- Desarrollar una plantilla JASPER en iReports para el certificado en cuestión. Para realizar ésto se recomienda tomar como base la plantilla proporcionada por Guaraní para dicho certificado y, a partir de esta, realizar todas las modificaciones deseadas.
- Guardarla con el mismo nombre que la original proporcionada por el sistema, pero en el path: <path proyecto Guaraní>/personalizaciones/exportaciones/jasper.
- Compilarla para generar el archivo .jasper que utiliza el sistema para la impresión de la constancia.
- ATENCIÓN: Si la plantilla original tiene un Formulario asociado, la nueva plantilla deberá tener como parámetros los que pase el formulario dinámicamente y envía a JASPER para la generación del PDF de la Constancia.
Cambiar el logo o el texto de una constancia o certificado provisto por el sistema
Cambiar el texto
Este caso es análogo al anterior. Se debe abrir la constancia que se desea modificar para realizar los cambios en el texto, siguiendo los mismos tres pasos detallados.
Cambiar el logo
Existen tres formas de realizar el cambio del logo:
- Realizar los mismos pasos enumerados anteriormente ("Para cambiar el texto") y elegir la imagen directamente desde la plantilla en lugar de utilizar el logo como parámetro.
- ATENCIÓN: la imagen debe estar ubicada en un directorio donde Apache tenga permisos para acceder.
- El método más simple que es recomendado, consiste en agregar el archivo "logo_institucion.jpg" en el directorio: <path proyecto Guaraní>/personalizacion/www/img/
- ATENCIÓN: Realizando esto la imagen sera adaptada al tamaño definido en la plantilla a modificar y ubicada en el lugar definido en la misma.
- Modificar el método personalizable: get_path_logo_impresion() de la clase "guarani" en el archivo <path proyecto Guaraní>/personalizacion/php/nucleo/_lib/guarani.php indicándole el nombre del archivo que contiene la imagen. Este es el punto menos recomendado, porque implica una redefinicion del código del sistema, además de contar con las mismas restricciones especificadas en el punto 2 (el tamaño y ubicación)
Agregar más datos a un certificado o constancia existente
Las constancias de solicitud manual existentes actualmente en el sistema, obtienen los datos a mostrar partir de consultas SQL. Para ésto, si se desea obtener algún campo extra a mostrar en el reporte, se debe modificar la consulta editando el archivo .jrxml de la constancia deseada y agregando el campo a incluir en la misma. También se debe agregar como campo (Field) del reporte y luego incluirlo en la sección deseada del mismo. Si el dato que se desea agregar no fuera posible obtenerlo a partir de la consulta SQL, o se desea solicitar su valor al usuario, se debe desarrollar un formulario y asociarlo a la constancia en cuestión. Ver el Anexo.
IMPORTANTE:
- La constancia (plantilla JASPER) recibe como parámetros fijos siempre el logo (path) y el nro. de solicitud (registro de la tabla sga_constancias_solicitud). La idea sería realizar una consulta (o modificar la existente) obteniendo los datos a partir de cruzar las tablas pertinentes de la BD de Guaraní tomando como base el nro. de solicitud.
- Una vez realizadas las modificaciones, al igual que en los casos anteriores, se deben seguir los pasos de guardarla con el mismo nombre que la original proporcionada por el sistema, pero en el path: <path proyecto Guaraní>/personalizaciones/exportaciones/jasper y recordar compilarla para generar el archivo .jasper que utiliza el sistema para la impresión de la misma.