Trabajar con fórmulas


A continuación se muestran unos cuantos ejemplos sencillos de como utilizar las fórmulas para generar documentación en Munigex.

Fórmulas asociadas a variables

Antes de asociar una fórmula a la variable, tendremos que tener en cuenta las siguientes cuestiones:

Cuestiones a tener en cuenta cuando se crean variables asociadas a fórmulas

  1. Al crear nuevas variables, por defecto Munigex toma como nombre de la variable lo mismo que se haya escrito en la descripción pero sin espacios. Puesto que el nombre de la variable es el texto que aparecerá en el listado de campos combinados de Word, se recomienda escribir un nombre corto pero lo suficientemente descriptivo. Tenga en cuenta también que no puede utilizar ciertas palabras reservadas como “Expediente”, “Solicitud”, “Registro”, etc. correspondientes a los objetos y métodos que utiliza Munigex para creación de fórmulas.

  2. Elija bien el tipo de valor de la variable. Cuando utilice el asistente para la generación de fórmulas automáticamente le pondrá el tipo correspondiente, pero si genera las fórmulas manualmente deberá indicarlo usted.

  3. Es importante especificar el entorno de uso de la variable ya que condiciona el poder asociarlo con las plantillas y con la generación automática de objetos y variables que le permitirán acceder de forma sencilla a datos de diferentes elementos.

Puede hacer que las fórmulas asignen un valor en concreto a la variable cuando esta se combine (Valor calculado) o que carguen una lista de valores basada en el entorno donde se esté utilizando para que el usuario seleccione uno (Fórmula para lista de valores posible). Si está acostumbrado a las fórmulas puede escribirlas directamente en el recuadro, o si no, utilizar el asistente de generación de fórmulas.

Acceso a los asistentes para la creación de fórmulas

Si genera las fórmulas manualmente puede utilizar el verificador para comprobar si ha escrito bien las fórmulas antes de utilizar la variable.

El asistente para fórmulas

El asistente le permite crear fórmulas de forma sencilla para poder acceder a los datos más comunes. Dependiendo del tipo de dato que quiera obtener, debe seleccionar una de las opciones que se le ofrecen:

Asistente para la creación de fórmulas

  • Propiedad de una persona : al seleccionar esta opción en el campo “Datos del campo accedido” se le mostrará un listado con las propiedades para que escoja la propiedad a la que quiere acceder. Los valores de la lista que se muestran en el asistente se basan en la tabla de datos “Propiedades de los titulares”.

  • Campo de datos en general : permite acceder a un campo de una tabla de la base de datos. Dependiendo del entorno de uso especificado se cargarán unas tablas u otras en el listado de “Nombre de la tabla”. Al seleccionar una tabla, verá que sus campos se listan en “Nombre del campo” para que seleccione el campo al que quiere acceder.

  • Dato internacionalizado : similar a la opción “Campo de datos en general” pero además ofrece la posibilidad de seleccionar el idioma en el que se quiere muestre el valor.

  • Fórmula de la biblioteca : Munigex lleva predefinidas alguna de las fórmulas de uso más común y a modo de ejemplos que podrá adecuar a su uso. Al seleccionar una de ellas se le mostrará una breve descripción de los valores que obtendrá o de como personalizarla.

Selección de fórmulas almacenadas en al biblioteca

La tabla completa de fórmulas existentes en Munigex es accesible desde la cinta de opciones de “Datos complementarios”. Si los desea, puede agregar más fórmulas creadas por usted mismo para que salgan en el listado del asistente.

Acceso a la biblioteca de fórmulas

Lista de fórmulas existentes en la biblioteca de fórmulas

Cuando complete los datos del asistente verá como en la parte inferior del mismo se le muestra la fórmula resultante para su edición (si la fórmula es de ejemplo deberá sustituir algunos valores por los que le interesa o cambiar algún parámetro dependiendo del dato que quiere que se muestre). Al aceptar dicha fórmula pasará a la ficha de la variable.

Fórmula resultante al seleccionar el campo de una tabla

Fórmula resultante al seleccionar una fórmula de la biblioteca

Cuando utilice el asistente, automáticamente se le marcará el tipo de dato correspondiente en la ficha de la variable. Recuerde que si introduce manualmente la fórmula, deberá seleccionar el tipo de dato que se ajuste al valor que quiere mostrar.

Asociar la variable con una plantilla

Una vez tengamos las variables creadas, el proceso a seguir para vincularlas con una plantilla es el mismo que en versiones anteriores. Sitúese en la pestaña variables y vaya agregando las que quiera utilizar al listado. Lo único que hay que tener en cuenta es que, si el entorno de uso de una variable es diferente de “Todos”, sólo podrá ser utilizada en plantillas que pertenezcan al mismo entorno de uso o que su entorno sea “Todos”. Es decir, una variable del entorno “tramitación” sólo podrá ser utilizada en plantillas del entorno “todos” o “tramitación”.

Como podrá observar, en el documento de Word se les mostrará las variables con el mismo nombre corto que especificó en la ficha, y no con la descripción como sucedía en versiones anteriores.

Variables con fórmula en la plantilla

Si utiliza el método seguro de acceso a documentos (bloqueo/desbloqueo de documentos) asegúrese de que guarda y desbloquea el documento plantilla cada vez que que lo edite o haga una modificación sobre el mismo, porque si no, no se reflejarán los últimos cambios.

Guardar y desbloquear el documento plantilla para que se vean las últimas modificaciones

Fórmulas asociadas a plantillas

En los documentos de plantilla podemos agregar más fórmulas que pueden hacer referencia o no a las variables que hemos agregado antes. Estas fórmulas nunca saldrán en el asistente y serán evaluadas al combinarse el documento.

Fórmulas relacionadas con el entorno de uso

Como se ha comentado en el glosario de fórmulas, cuando se especifica un entorno de uso por defecto se crean una variables y objetos que permiten el acceso a datos relacionados con dicho entorno.

Si se quisiera acceder a datos relacionados con un expediente en una plantilla de entorno “Tramitación”, no haría falta agregar variables que aludieran al expediente, directamente podríamos utilizar el objeto “Expediente” que se crea por defecto para acceder a otros datos. Es preciso que el nombre que utilice para las fórmulas no coincida con los nombres reservados para los objetos y los métodos. Para más información consulte el manual de referencia.

Fórmulas relacioandas con el entorno de uso de la plantilla

Fórmulas en la plantilla de Word

Fórmulas relacionadas con valores de variables o con otras fórmulas

Podemos utilizar las fórmulas para obtener más datos a partir del valor de una variable o de otra fórmula.

Por ejemplo, supongamos que queremos obtener varios datos de la persona que el usuario seleccione de un listado que se le ofrece. Para ello, crearemos la variable del entorno de tramitación TSEL con la siguiente fórmula : Expediente.Titulares.Listar('T'). Con esta fórmula se cargará una lista con todos los titulares del expediente para que el usuario seleccione uno.

Asignaremos esta variable a nuestra plantilla y utilizaremos el nombre que le hemos dado como vínculo en las fórmulas. En este caso, la variable “ValorASeleccionar” guarda el identificador del titular que haya seleccionado. Utilizaremos ese identificador para obtener su nombre

Fórmulas con referencia a valores de variables

También podemos utilizar las fórmulas para crear un nuevo objeto basándonos en el valor seleccionado y utilizar dicho objeto para acceder a otros campos.

Nuevos objetos a partir de fórmulas

El resultado en el documento combinado será el siguiente:

Referencia a valores seleccionados

Referencia a valores seleccionados

Trabajar con el objeto “Entorno”

El objeto entorno es como una variable global y genérica que se puede utilizar en cualquier plantilla o variable ya que no pertenece a ningún entorno de uso específico. Dada esa naturaleza, sólo permite acceder a datos generales del propio ayuntamiento (como su nombre, dirección, …) y a datos generales de la propia aplicación (base de datos de imágenes, unidades administrativas, etc.)

Referencia al objeto Entorno

El objeto entorno nos permite trabajar con imágenes de una manera sencilla utilizando diferentes referencia. Puede consultar la clase “EntornoDAL” en el manual de referencia.

Trabajar con referencias a otros documentos

A parte de utilizar las fórmulas para recabar datos e información, también las podemos utilizar para hacer referencia a partes de otros documentos gestionados por Munigex e integrarlos en el nuevo documento que estamos generando. Para ello, utilizaremos los marcadores de MS-Word.

Agregar marcadores a los documentos

Lo primero que tendremos que hacer es insertar un marcador en el documento al que haremos referencia. Podemos hacerlo en la plantilla del mismo documento para que todos los documentos que se generen a partir de él se creen con la marca ya generada, o agregarla directamente en el documento que vayamos a referenciar.

Simplemente seleccione la parte del documento que quiere marcar y pulse sobre “Marcador” dentro de la opción “Insertar”.

Agregar marcadores al documento

En la ventana que le aparecerá simplemente tiene que insertar el nombre que le dará al marcador y que nos servirá para referenciarlo desde las fórmulas, y pulsar sobre el botón “Agregar”.

Agregar marcadores al documento

Referenciar a los marcadores

Para hacer referencia a partes de otros documentos utilizaremos la propiedad “Documentos”. Por ejemplo, para acceder al texto de un decreto del expediente actual utilizaremos la fórmula :

Expediente.Documentos[IDDecreto].Marca("NombreMarcador")

Con este sistema se mantienen en el nuevo documento tanto el formato del texto como las imágenes o tablas que pueda contener la marca seleccionada.

La extracción parcial del texto de un documento sólo es efectiva cuando el documento de origen está en formato doc o docx. Si ha generado el documento como pdf, o lo ha firmado, el campo que hace alusión a ese texto quedará vacío.

Aludir a tablas o a parte de ellas

Se puede referenciar a toda una tabla o sólo a las filas o columnas que nos interesan. Para ello, debe seleccionar toda la tabla pulsando sobre el icono de la parte superior izquierda y agregarle un marcador.

Seleccionar la tabla de referencia

Supongamos que existe una tabla de tres filas por tres columnas en el documento.

0.0 0.1 0.2
1.0 1.1 1.2
2.0 2.1 2.2

Si quisiésemos seleccionar filas completas utilizaríamos el método “Fila” e indicaríamos en el índice el número de fila en base 0 (índice 0 = primera fila).

Documento.Marca("MarcaTabla").Fila(0)
0.0 0.1 0.2

También se puede indicar el rango de filas que nos interesa. Se pasa como parámetros el índice de la primera y última fila del rango.

Documento.Marca("MarcaTabla").Fila(1,2)
1.0 1.1 1.2
2.0 2.1 2.2

Si quisiésemos seleccionar columnas completas utilizaríamos el método “Columna” e indicaríamos el índice de la columna que nos interesa. Al igual que en las filas, los índices se contabilizan en base 0, siendo el índice 0 la primera columna de la tabla.

Documento.Marca("MarcaTabla").Columna(0)
0.0
1.0
2.0

Al igual que con las filas, también se puede seleccionar un rango de columnas indicando como parámetros el índice de la primer y última columna.

Documentos.Marca("MarcaTabla").Columna(1,2)
0.1 0.2
1.1 1.2
2.1 2.2

También permite combinar ambos métodos para conseguir el valor de una o varias celdas en concreto.

Documentos.Marca("MarcaTabla").Fila(1).Columna(1)
1.1
Documentos.Marca("MarcaTabla").Fila(1,2).Columna(1,2)
1.1 1.2
2.1 2.2

Internacionalización y formato de salida de los datos

Muchos de los métodos que se utilizan a la hora de generar fórmulas permiten indicar el idioma en el que se quiere obtener el dato. Para ello, se utiliza como parámetro los códigos ISO631 que identifican cada idioma (“es-ES” para castellano y “eu-ES” para euskera). Por ejemplo:

  • Queremos obtener el nombre del expediente que estamos tramitando
Expediente.Nombre
  • Con la fórmula anterior obtendríamos el nombre del expediente en el idioma por defecto. Queremos obtener el nombre del expediente, tanto en euskera como en castellano porque lo vamos a utilizar en una plantilla bilingüe.
Expediente.Nombre("eu-ES")
Expediente.Nombre("es-ES")

Consulte el manual de referencia para ver qué métodos y propiedades permiten seleccionar el idioma en el que se obtendrá el valor.

Tenga en cuenta que los idiomas que utilizará en las fórmulas tienen que existir en Munigex con sus correspondientes traducciones para que la fórmula sea capaz de obtener el texto traduccido, si no, se devolverá el texto en el idioma neutral.

Otra de las posibilidades de las fórmulas es el formateo de los datos. Por ejemplo, la base de datos Munigex almacena las fechas siempre en formato corto (30/05/2011) y le interesa que en el documento se muestre en formato largo. Aplicando los métodos de formateo (consulte las clases “FormatoXXX” en el manual de referencia) puede cambiar la forma en que se mostrarán los datos e incluso combinarlos con el idioma en el que se quiere mostrar. Por ejemplo:

Fecha = Expediente.FechaApertura // 30/05/2011
Fecha.EnTexto(2) // Fecha en formato largo en idioma del usuario : 30 de Mayo de 2011</span>
Fecha.EnTexto(2,"eu-ES") // Fecha en formato lago y en euskera : 2011ko maiatzaren 30a</span>

A un nivel más avanzado, también puede utilizar directamente los métodos de formateo de C# como “String.Format” o las funciones de conversión como “Cast” y “Convert”. Para más detalle del uso y sintaxis de estas funciones consulte el manual de referencia de C#.

Insertar códigos de barras

A partir de la versión 5.65 se incluyen la fórmulas para utilizar códigos de barras en la documentación. Puede utilizar tanto los códigos de barras clásicos (EAN128) como los nuevos códigos QR.

Tenga en cuenta que al generar los códigos de barras del texto especificado se eliminarán las tildes y símbolos extraños. Mediante las propiedades de imagen podrá especificar el tamaño de la imagen, margen, si quiere que aparezca el texto codificado debajo de la imagen y la resolución de la misma.

CodigoEAN = CodigoBarrasEAN128("http://www.cgssl.es").Imagen(60,24,3,true,300)

Código de barras generado

La fórmula crea una imagen con un código de barra EAN128 que mide 60x24 mm, 3 mm de margen blanco alrededor, y con el texto que codifica escrito en un parte inferior. Se genera a una resolución de 300x300 ppp.

En el caso de los códigos QR, también se debe especificar el nivel de tolerancia a errores y la versión. A mayor nivel de tolerancia, habrá menos problemas para leer correctamente la imagen, pero la información codificada será menor. En caso de la versión, a mayor versión, mayor número de cuadros compondrán la imagen.

CodigoQR = CodigoBarrasQR("http://www.cgssl.es",1,7,2).Imagen(30,30,3,false,300)

Código QR generado

La fórmula genera un código de barras QR con el nivel de errores 1 y versión 7 que acepta hasta 140 caracteres. Para indicar que el texto debe tratarse de forma binaria se pone 2. La imagen que se obtendrá será de 30x30 mm y con 3 mm de margen alrededor, sin texto en la parte inferior. Además la imagen se generará en una resolución de 300x300 puntos por pulgada.

Para más información consulte la entrada “Códigos de barras” del manual de referencia.

Obtener datos externos a Munigex

A partir de la versión 5.65 se incluyen la fórmulas para poder utilizar datos externos a Munigex en las variables de Munigex.

Antes de poder utilizar este tipo de fórmulas deberá generar los diferentes orígenes de datos desde la opción “Conexiones externas” dentro de la pestaña “Permisos”.

Las fórmulas nos permiten:

  • Obtener una tabla completa del origen de datos (insertará una tabla en la documentación o cargará un cuadro combinado en el asistente):
DBOrigen.Cargar("MiOrigenDeDatos").Tabla("NombreTabla", "")
  • Obtener una tabla con las filas que cumplan el criterio establecido (insertará una tabla en la documentación o cargará un cuadro combinado en el asistente)
DBOrigen.Cargar("MiOrigenDeDatos").Tabla("NombreTabla", "cantidad > 100")
  • Obtener sólo algunas de las columnas de la tabla que cumplan el criterio establecido, si se ha indicado alguno (insertará una tabla en la documentación o cargará un cuadro combinado en el asistente):
DBOrigen.Cargar("MiOrigenDeDatos").Tabla("NombreTabla", "cantidad > 100", "columna_Nombre, columna_Cantidad")
  • Obtener la primera fila de la tabla que cumpla el criterio, si es que se ha establecido uno
FilaTabla = DBOrigen.Cargar("MiOrigenDeDatos").Fila("NombreTabla", "cantidad > 100", "columna_Nombre, columna_Cantidad")

Por si sola esta fórmula no es capaz de mostrar datos como el método "Tabla". Para acceder al dato debe hacer referencia a la columna que desea (esta columna debe estar incluida en la lista de columnas del método "Fila"):

Nombre = FilaTabla["columna_Nombre"]
Cantidad = FilaTabla["columna_Cantidad"]
  • Obtener el valor de la primera columna de la primera fila que cumplan los criterios establecidos, si se ha indicado alguno
DBOrigen.Cargar("MiOrigenDeDatos").Valor("NombreTabla", "cantidad > 100", "columna_Nombre, columna_Cantidad")

La fórmula sólo retornará el valor de la columna "columna_Nombre" aunque hayamos indicado más columnas en el parámetro

Es preciso que cuando utilice datos externos para obtener datos que cargarán una lista de opciones se haga referencia al campo clave de la tabla que se está tratando para utilizarlo como campo clave del listado de opciones.

Para más información consulte las clases relacionadas con DBOrigen en del manual de referencia.

Insertar mapas

Munigex que permite insertar en documentos imágenes de mapas basados en Open Street Map o Google Maps.

A la hora de combinar una variable de tipo “Mapa” se muestra un asistente que permite seleccionar de forma gráfica el área a mostrar en el documento y el punto del mapa que queremos resaltar. Después, mediante formulación podemos alterar el mapa o crear nuevos.

Por ejemplo, puede agregar el punto exacto a resaltar en un área de mapa que haya seleccionado mediante el asistente, cambiar de ubicación la marca existente o decirle al sistema que marque el centro del área seleccionada.

Fórmula Resultado
Mapa = VariableMapa Mapa original obtenido en el asistente de combinación
CambiarMarca = Mapa.Marcar(-2.21148, 43.04804) Mapa con la ubicación de la marca modificada
CentroMapa = Mapa.MarcarCentro Mapa con el centro del área marcada

Para agilizar el proceso de carga de la imagen, cuando necesite mostrar un área extensa, puede indicar que se muestre el mapa utilizando diferentes bloques de área del mismo tamaño del área seleccionada desplazados en diferentes direcciones.

Fórmula Resultado
Mapa = VariableMapa Área seleccionada
UnBloqueDerecho = Mapa.Encuadrar(1,0) Original más un bloque hacia la derecha
UnBloqueIzquierdo = Mapa.Encuadra(-1, 0) Original más un bloque de la izquierda
UnBloqueArriba = Mapa.Encuadrar(0, 1) Original más un bloque superior
UnBloqueAbajo = Mapa.Encuadrar(0, -1) Original más un bloque inferior

Por defecto, los mapas utilizados en Munigex se basan en Open Street Maps. Si quiere utilizar las imágenes de Google Maps deberá indicarlo mediante el método “OrigenWeb”.

Fórmula Resultado
OpenStreetMaps = Mapa.OrigenWeb("OSM") Imagen del mapa en la versión Open Street Maps
GoogleMaps = Mapa.OrigenWeb("GM") Imagen del mapa versión Google Maps

También se puede obtener diferente información de los mapas como el ancho de la imagen o las coordenadas del punto marcado utilizando las diferentes propiedades de la clase.

Fórmula Resultado
AnchoImagen = mapa.AnchoCm 15
CoordenadasPunto = Mapa.Marca PuntoMapa(-2.21328,43.04739)

La propiedad URL nos permite obtener una dirección web para poder ver el mismo mapa en un navegador web. La dirección web que facilita la propiedad debe ser copiada en la barra de direcciones del navegador para poder obtener la URL válida del mapa que estamos utilizando. Ésta última es la que tendremos que utilizar si queremos ver la imagen del mapa en el navegador.

Fórmula Resultado
url1 = Mapa.Url http://munigex.net/PortalV/5.52/Mapas/MapaImagen.aspx?q=(-2.21608,43.04884),(-2.20694,43.04518),(-2.21328,43.04739),z17,15&tipomapa= OpenStreetMap&icono=http://munigex.net/PortalV/5.52/Imagenes/Marker.png&mostrarEscala=1
url2 (tras copiar url1 en el navegador) http://pafciu17.dev.openstreetmap.org/?module=map&zoom=17&bbox=-2.21608,43.04884,-2.20694,43.04518&points= -2.21328,43.04739,pointImageUrl:munigex.net/PortalV/5.52/Imagenes/Marker.png

El mapa resultante, al ser una imagen, se le pueden aplicar los diferentes métodos y propiedades de la clase “Imagen” para poder manipularla.

Fórmula Resultado
Mapa = VariableMapa
*Original : 150 mm de ancho (se muestra en escala 1:2)
Imagen del mapa original
Redimensionar = Mapa.Imagen.SetTamañoTotal(70,40) Imagen redimensionada del mapa

Puede consultar más métodos y propiedades de la clase Mapa en el manual de referencia.