Combinación de documentos con regiones |
Munigex permite la combinación de documentos MS-Word avanzados con regiones de datos. En los casos en que por cada documento se deseen sacar tablas con detalles o listados de forma jerárquica, la combinación con regiones es la solución.
Junto con el sistema de combinación de documentos con regiones, Munigex además permite la utilización de funciones lambda e iteradores para calcular, filtrar, ordenar y agrupar los datos en estas regiones del documento. En este capítulo se describen los conceptos útiles para crear una plantilla MS-Word con regiones.
A modo ejemplo, en la imagen superior se aprecia una plantilla de combinación de MS-Word con una región de datos llamada "x". En ella se quiere detallar información de los documentos que acompañan a un registro de entrada de un municipio. Para su creación se ha utilizado el complemento de MS-Word de Munigex.
Normalmente, como administradores, en una plantilla de documento de combinación de MS-Word colocaríamos una serie de campos a lo largo del mismo. El usuario final, luego, sería capaz de generar documentos a partir de esa plantilla y de unos valores que se aporten para cada uno de esos campos. Estos valores en cada documento combinado suelen venir en una tabla aparte hecha de valores simples: números, textos, fechas, etc., como la tabla del siguiente ejemplo:
Nº | Nombre del campo | Valor |
---|---|---|
1 | CódigoExpediente | 2018ACIN0001 |
2 | NombrePrimerTitular | Juan Nadie Arteaga |
3 | Asunto | Solicita permiso de obras para ampliar el taller mecánico de su propiedad... |
4 | Lista de documentos entregados | ??? |
... | ... más valores | ... |
Si nos fijamos en el elemento 4º de la tabla, hemos puesto unos interrogantes porque, para este ejemplo, no queremos un valor simple. Queremos mostrar un listado más rico de información de cada documento extra entregado. Para ello, podemos utilizar una subtabla con información de los documentos distribuida en unos campos como los siguientes:
Nº | Título documento | CodigoQR | Formato | Comentarios |
---|---|---|---|---|
1 | Plano del arquitecto | [una imagen QR] | Firmado por el arquitecto | |
2 | Documento de subvención | [una imagen QR] | Subvención de la Unión Europea para autónomos | |
3 | Documento de seguridad medioambiental | [una imagen QR] | MS-Word | Estudio de impacto medioambiental en el entorno |
... | ... más valores | ... | ... | ... |
Esta segunda tabla ya es posible inyectarla también a partir de Munigex 7.19 con el concepto de "Regiones". De hecho, las regiones se pueden anidar en varios niveles para mostrar detalles cada vez más profusos en el documento. Como ejemplo real de documentos con regiones, el propio Munigex los utiliza para generar los recibos de la notificaciones y para los justificantes de los registros de entrada de la organización.
Para crear una región de datos en un documento de plantilla de Munigex son precisos los siguientes elementos:
Declarar dos campos {MERGEFIELD "TableStart:<NombreRegion>"} y {MERGEFIELD "TableEnd:<NombreRegion>"} que delimitan la zona del documento donde se colocarán los valores de la región.
Crear una lista de variables en Munigex que tendrán este atributo de <NombreRegion>. Así, Munigex sabrá que esas fórmulas son de esa región.
Crear una lista de campos {MERGEFIELD "<Valor>"} que aludan a las fórmulas de esa región y solo a esas fórmulas. Al combinar el documento esos campos se repetirán en la región, ya sea creando nuevas filas, si se han dispuesto como un formato de tabla, o como una serie de párrafos o textos normales.
Es posible hacer lo anterior con sólo tener MS-Word; o incluso sólo con Libre Office. Pero es algo tedioso de hacer. Por fortuna, el complemento de Munigex para MS-Word realiza esta colocación de los campos de toda la región de forma simplificada y no tendremos que hacerlo manualmente. Así que solo nos resta crear una serie de fórmulas que aludan a la región :<NombreRegion> y luego inyectarlas en la plantilla del documento usando el complemento de Munigex.
Habitualmente, en esta documentación y por simplicidad de escritura de los ejemplos, las regiones con fórmulas vienen como si de un código fuente de texto normal se tratara. Vienen con delimitadores de llaves {}. Por ejemplo:
notif = DocActual.DocumentoAsociadoAlRecibo(); //La notificación original. anejos= Iterar(notif.ListaRelacionados) //Lista de referencias de documentos que acompañan a la notificación { Numero = anejos.Orden; //Número dentro de su registro de salida. Sinopsis = anejos.Descripcion; //Un texto corto con la descripción del documento Archivo = anejos.Archivo; //Es el nombre del archivo Url = anejos.DocumentoCompleto.UrlValidacion;//La URL que permite validar el documento en la sede eletrónica. CodigoQR = CodigoBarrasQR(Url,1,2,7); //Se genera un código QR con el nivel de errores 1 y el formato 7 que acepta //hasta 140 caracteres. Se pone 2 porque el texto se tratará de forma binaria. ImagenQR = CodigoQR.Imagen(30,30,3,false,300); //Se obtiene una imagen de 30x30 mm y 3 mm de margen interior //El "false" indica que no se colocará el texto en la parte inferior de la imagen. //Además la imagen se generará en una resolución de 300x300 puntos por pulgada. } //... más variables que no pertenecen a la región o el comienzo de otra región...
Este ejemplo es completamente funcional. Ver ListaRelacionados
En realidad, en Munigex se anota cada fórmula en una tabla con sus elementos separados. Para indicar que ciertas fórmulas son de la región anejos que aparecen entre los símbolos {} se les antepone una columna que indica el nombre de esa región a la que pertenecen. Así tendríamos la siguiente tabla de fórmulas:
Nº | Región | NombreCampo | Fórmula | Comentarios |
---|---|---|---|---|
1 | notif | DocActual.DocumentoAsociadoAlRecibo() | La notificación original | |
2 | anejos | Iterar(notif.ListaRelacionados) | Lista de referencias de documentos que acompañan a la notificación | |
3 | anejos | Numero | anejos.Orden | Número dentro de su registro de salida |
4 | anejos | Sinopsis | anejos.Descripcion | Un texto corto con la descripción del documento |
5 | anejos | Archivo | anejos.Archivo | Es el nombre del archivo |
6 | anejos | Url | anejos.DocumentoCompleto.UrlValidacion | La URL que permite validar el documento en la sede electrónica. |
7 | anejos | CodigoQR | CodigoBarrasQR(Url,1,2,7) | Se genera un código QR con el nivel de errores 1 y el formato 7 que acepta hasta 140 caracteres. Se pone 2 porque el texto se tratará de forma binaria. |
8 | anejos | ImagenQR | CodigoQR.Imagen(30,30,3,false,300) | Se obtiene una imagen de 30x30 mm y 3 mm de margen interior. El "false" indica que no se colocará el texto en la parte inferior de la imagen. Además la imagen se generará en una resolución de 300x300 puntos por pulgada. |
9 | ... | ... | ...más variables que no pertenecen a la región o el comienzo de otra región.... |
Se han destacado en negrita la región "anejos". Se puede apreciar que todas las fórmulas de la región anejos aluden siempre a otra fórmula que ofrece una colección de valores y tiene por nombre de campo la cadena "anejos=Iterar(xxxx)". Esa colección puede ser una simple, como en este ejemplo, o completamente calculada por medio de funciones Lambda de cálculo simbólico; que Munigex 7.19 también permite. Las funciones Lambda permiten cálculos y recolecciones de información de todo tipo. Vea: IteradorExtensionT con diversos ejemplos de cómo se hacen colecciones.