Arrastre para cambiar el tamaño
Combinación de documentos con regiones
CGS S.L. - Manual de referencia

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.

Imagen 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.

Contexto de uso

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:

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:

Título documento

CodigoQR

Formato

Comentarios

1

Plano del arquitecto

[una imagen QR]

PDF

Firmado por el arquitecto

2

Documento de subvención

[una imagen QR]

PDF

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.

Elementos a utilizar

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.

Fórmulas utilizadas en una región

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:

C#
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:

Región

NombreCampo

Fórmula

Comentarios

1notifDocActual.DocumentoAsociadoAlRecibo()La notificación original
2anejosIterar(notif.ListaRelacionados)Lista de referencias de documentos que acompañan a la notificación
3anejosNumeroanejos.OrdenNúmero dentro de su registro de salida
4anejosSinopsisanejos.DescripcionUn texto corto con la descripción del documento
5anejosArchivoanejos.ArchivoEs el nombre del archivo
6anejosUrlanejos.DocumentoCompleto.UrlValidacionLa URL que permite validar el documento en la sede electrónica.
7anejosCodigoQRCodigoBarrasQR(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.
8anejosImagenQRCodigoQR.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.