lunes, 7 de diciembre de 2015

Formularios personalizados en QGIS 2.12, Parte 2

Tal como lo anunciamos en la anterior entrada, ahora vamos a continuar tratando el tema de los formularios personalizados. El objetivo ahora será enlazar datos externos que nos permitan mostrarlos dentro de nuestra tabla de atributos.

Uso del Plugin Form Value Relation


Hace unos días atrás pude apreciar que existía un plugin nuevo denominado Form Value Relation, luego de ver cómo se podría aplicar con nuestros datos, decidí mostrarlo en esta segunda parte sobre formularios personalizados. Tal como se muestra en la Figura 1, el plugin lo puedes instalar desde la administración e instalación de complementos del QGIS.

Figura 1: Instalación del Plugin Form Value Relation


Una vez que lo tenemos instalado ya estamos listos para emplearlo, por lo tanto para el siguiente ejercicio vamos a necesitar datos externos, para este caso van hacer de tipo CSV. Para quienes deseen practicar lo pueden descargar desde aquí.

Ahora ya dentro del QGIS podemos ir como ya sabemos a propiedades de nuestra capa anteriormente trabajada (ccpp_huanuco_base), en esta oportunidad vamos a modificar el campo "NOMCCPP", para ello ingresamos a su respectivo control de edición, dentro del mismo veremos que en la parte inferior de la lista de controles existe "Form Value Relation".


Figura 2: Ubicación del control "Form Value Relation"


Filtrado dinámico de valores en los formularios


Si bien existe la opción en la lista de controles de "Relación de valores", el plugin que describimos sería un clon, pero que representa una mejora, la cual hace que la aplicación de filtros dinámicos complejos en la tabla de atributos del QGIS constituya una tarea fácil. Como lo vamos a ver en el ejercicio, se podría emplear para poner en práctica formularios de desglose hacia abajo, donde los valores disponibles en un campo dependen de los valores de otros campos.

Lo primero que debemos hacer es seleccionar la capa de valores a enlazar, la columna clave y la columna de valores (Figura 3), las cuales corresponden a los campos de la nueva tabla que agregamos en formato CSV, con ello ya podemos hacer nuestra expresión de filtrado.

Figura 3: Configurando el plugin "Form Value Relation"


Para hacer la expresión de filtrado, nos vamos al editor de expresiones, en donde va existir ahora una nueva función en la sección "custom", y con la ayuda que nos ofrece podemos armar nuestra expresión tal como se muestra en la figura siguiente:

Figura 4: Elaborando la expresión para ejecutar un filtro.


Ya creamos una relación entre ambas tablas, ahora en el campo de "NOMB_DIST", podemos generar un control de  tipo "Mapa de Valor", con la idea de generar una lista desplegable con el nombre de los distritos, para que cuando se vaya cambiando entre ellos, se muestre en el campo de "NOMB_CCPP" los valores existentes en la tabla que se enlazó.

Figura 5: Campos y tipos de controles para que funcione el filtro


Una vez realizado este procedimiento, nos vamos a nuestro escritorio del QGIS y en modo de edición y usando el identificador hacemos clic en uno de los centros poblados, veremos con ello que en el campo de "NOMB_CCPP", existe una lista desplegable de centros poblados que estarían presenten en dicho distrito, y si cambiamos el nombre de distrito, aparecerán otros nombres, con ello verificamos que nuestro filtro esta funcionando.

Figura 6: Resultado de ejecutar el filtro al seleccionar el valor de un "Distrito"



Ordenando nuestro formulario


Hasta el momento podemos decir que nuestros datos a  modo de formulario han sido personalizados, pero se podría darle una mejor presentación, con el objetivo de que sea más eficiente. Lo primero que debemos hacer es ir a "Campos" y luego nos vamos en la parte superior a la "Disposición del editor de atributos". Como verán existe una lista para elegir entre tres opciones, por defecto esta "Autogenerar", ahora nosotros lo vamos a cambiar a la opción "Diseñador de arrastrar y soltar", con ello nos aparecerá un panel lateral.

Figura 7: Opción de Diseñador de tipo arrastrar y soltar.


Ahora solo nos queda darle nombre a las etiquetas que tendrán nuestros datos a modo de pestañas, con la finalidad de agruparlo por el tipo de datos que existen, luego solo debemos arrastrar nuestros campos para ubicarlo en donde corresponde.

Figura 8: Generando las etiquetas y arrastrando los campos para agruparse.


Finalmente ya en nuestro escritorio de QGIS podemos ver los resultados, es decir nuestro formulario dividido en viñetas que agrupan a los campos con distintos tipos de datos.


Figura 9: Resultado final con las viñetas activas dentro de nuestro formulario personalizado.


Bueno espero que les resulte útil usar el modo de formulario personalizado con nuestros datos. Hasta otra oportunidad.


Referencias:




10 comentarios:

Anónimo dijo...

Muy interesante

Anónimo dijo...

Genial... estaba con esto y gracias a tu post lo he visto claro. En un momento he hecho un formulario perfecto. Muchas gracias.

carlos carbajal dijo...

Me da gusto saber que te ha sido útil.

glovera dijo...

Muy buenas, ante todo excelente aporte.. Una pregunta como puedo imprimir un formulario de estos.? Muchas gracias.

carlos carbajal dijo...

Mi estimado, no aprecio que exista una opción para imprimir a modo de formulario.

Saludos,

Carlos

Unknown dijo...

¡Muy buen aporte!, siga adelante Carlos

Unknown dijo...

esto está genial y me serviría para editar tablas con relaciones en postgres verdad?

carlos carbajal dijo...

Hola Javier,
La verdad no lo intenté hacerlo, sería interesante, si lo logras hacerlo me comentas.

saludos,

PLANCH dijo...

Buenas... estoy trabajando con esta diseño del formulario en la versión 3.4
Cuando tengo la capa de Información geográfica en modo edición todo funciona correctamente.
Pero cuando la tengo en modo No Edición (modo lectura) y voy a ver los atributos de un elemento desde la tabla (en vista formulario) no puedo ver los atributos que tienen una condición.
Es decir si tengo una capa de IG con una columna donde almaceno el [Tipo de Aprovechamiento] de una parcela (1=Pastos, 2=Tierra de labor, 3=...) y otra tabla donde me describe el "Tipo de Pastos"; (Pastor abierto, Pastos cerrados)
Con la capa de Información geográfica en modo edición, puedo ponerle la condición que cuanto el tipo de aprovechamiento sea 1 (pastos) se visualice el Tipo de Pastos y elegir qué tipo de pastos es.
Pero si la capa está en modo No Edición, el formulario no me muestra el Tipo de Pastos

carlos carbajal dijo...

Estimado, puedo apreciar que existe un cambio en relación a la versión 3.x del QGIS, ahora existe la opción en propiedades para realizar un Formulario de Atributos. Sinceramente a pesar que la interfaz es similar, todavía no lo pude probar, pero lo espero hacer pronto y te podría indicar que puede estar pasando.