Saltar a contenido

Formulario de atributos

Antes de acceder al campo, deberá configurar sus formularios (los campos que el usuario verá). Puede crear los formularios en su proyecto de QGIS. Funciona igual que en un proyecto QGIS normal, pero con algunas diferencias.

Configuración del formulario de atributo

Para configurar un formulario, debes abrir Propiedades > Formulario de atributos de la capa vectorial en QGIS.

Dependiendo del comportamiento que desee para sus diferentes atributos, puede elegir diferentes tipos de widgets. A continuación, se muestra un resumen de los tipos disponibles y compatibles con QField.

Tipo de control Soporte Notas
Adjunto Este campo se combina con la integración de la cámara, para obtener más información, vaya a Adjunto (configuración de fotos)
Color
Fecha / Hora
Caja para marcar
Oculto
Rango Cuadro giratorio y control deslizante editables
Editor de relaciones
Referencia de relación
Edición de texto
Mapa de valores Cuadro combinado o botón de opción (este último exclusivo de QField)
Relación de valores
Generador de UUID

QField también admite todos los widgets de tipo contenedor.

Tipo de control Soporte Notas
Widget QML
Widget HTML
Widget de texto
Widget espaciador

Para otros tipos de widgets de atributos que aún no son compatibles, considere patrocinar una implementación.

Configuración general de atributos

Para personalizar el formulario de atributos, es necesario usar el diseñador de arrastrar y soltar de QGIS o un archivo de interfaz de usuario predefinido. También puede usar expresiones potentes para rellenar los diferentes campos. Además de las variables disponibles, existen variables específicas de QFieldCloud, que pueden utilizarse dentro del formulario de atributos:

A continuación se muestran algunas otras configuraciones generales útiles, que puede encontrar en el formulario Propiedades... > Atributos de la capa vectorial (ver la imagen a continuación).

  • Diseñador de arrastrar y soltar: puede estructurar sus formularios utilizando varios contenedores, como pestañas y grupos, y mejorar la interactividad incorporando visibilidad condicional de los campos y asignando valores predeterminados. Para obtener más información, consulte: Documentación del Diseñador de arrastrar y soltar de QGIS

  • Ocultar formulario de atributo al: Puede ocultar el formulario de atributo cambiando de "Mostrar formulario al agregar función" a la configuración "Suprimir formulario de atributo". Al agregar una nueva característica en QField, no es necesario completar ningún formulario de atributo. Nota: En tal caso, debe configurar el formulario de atributos de tal manera que se cumplan todas las restricciones/reglas incluso si no agrega ningún atributo.

  • Editable: Puedes decidir si un campo es editable o no activándolo en la visualización del widget del campo correspondiente.
  • Recordar los últimos valores: Si no desea agregar el mismo valor una y otra vez, puede habilitar esta opción en la visualización del widget en QGIS. Sin embargo, QField ofrece un control más detallado sobre los últimos valores utilizados. Si habilita esta opción en QGIS, la regla siempre se aplicará. Con QField puedes cambiar y deshabilitar esta opción en cualquier momento durante la recopilación de datos.

Formulario de atributos generales
Formulario de atributos generales

Trabajando con las relaciones

Preparación en escritorio

Para obtener información detallada sobre cómo configurar relaciones de capas en QGIS, consulte la sección configuración de relaciones entre múltiples capas en la documentación de QGIS.

Para controlar aún más la visibilidad y la cantidad de elementos relacionados que se muestran en QField, consulte las instrucciones para configurar [Visibilidad máxima de elementos para QField].(../../get-started/tutorials/get-started-qfs.md#additional-properties)

El widget de relación muestra todas las características secundarias de referencia en una lista. Si está habilitado, es posible añadirlas, eliminarlas y abrirlas.

La identificación visual de las entradas de la lista se realiza a través de la Expresión de visualización de la capa secundaria.

Manejo de claves

Dado que la clave principal principal se utiliza como clave externa en las funciones secundarias de referencia, debe ser segura (debe ser única) incluso después de la sincronización con el escritorio. Por lo tanto, siempre recomendamos usar UUID como claves principales. Consulte Trabajar con GeoPackages para obtener más información.

Ya puedes añadir hijos de un padre que esté a punto de añadirse. Esta opción se bloqueará si no hay una clave principal válida en el padre o si se infringen las restricciones. Si se cancela la función de añadir el padre después de haber añadido algunos hijos, estos también se eliminarán.

Relaciones Muchos-a-Muchos

En relaciones de muchos a muchos, según la configuración de cardinalidad en las Propiedades... de la capa vectorial de QGIS, al agregar, eliminar o abrir una entrada en la lista se afecta directamente la capa secundaria (en cardinalidad directa) o la tabla de enlace (en cardinalidad de muchos a uno).

El segundo caso se usa habitualmente cuando hay una información adicional sobre la relación (ej. porcentaje) en la tabla enlazada.

En caso de cardinalidad muchos a uno en relaciones muchos a muchos, es necesario establecer la Expresión de visualización en la tabla de enlace.

Relación ordenada

Si es necesario, puede reordenar las funciones secundarias vinculadas según un campo seleccionando el Editor de Relaciones Ordenadas en las opciones de tipo de widget. Sin embargo, para habilitar esta funcionalidad, necesita un segundo complemento Editor de Relaciones Ordenadas

Flujo

  1. Instale el plugin Editor de Relaciones Ordenadas desde el repositorio oficial o a través del "Administrador de Plugins" de QGIS.

  2. Abra la capa vectorial Propiedades... > Formulario de Atributos y configure el editor de diseño en Diseñador de Arrastrar y Soltar.

  3. Haga clic en la relación de los widgets disponibles.

  4. A la derecha, en "Visualización del widget", desplácese hasta la opción "Tipo de widget" y seleccione Editor de relaciones ordenadas.

  5. Configure el widget con los siguientes ajustes:

  6. Campo de ordenamiento: Especifique el campo de la capa secundaria que se usará para determinar el orden de las entidades.

  7. Descripción: Defina una expresión que se mostrará para cada entidad secundaria de la lista.

  8. Ruta de la imagen (opcional): Proporcione una ruta a una imagen o icono para mejorar visualmente la lista. Esta expresión se resuelve dinámicamente.

Configuración del widget en QGIS
Configuración del widget en QGIS

QField
QField

Configuración del widget Mapa de valores

Al usar mapas de valores como tipo de widget, puedes controlar el cambio automático de una interfaz de botones a una lista.

Propiedades de la capa QFieldSync
Propiedades de la capa QFieldSync
.

Flujo

  1. Vaya a la capa vectorial Propiedades > QField

  2. En "Configuración del formulario de entidad", habilite y defina la cantidad de elementos que activarán la transición a una interfaz de botones.

Editor de mapas de valores de QField como lista
Editor de mapas de valores de QField como lista

Editor de mapas de valores de QField como botones
Editor de mapas de valores de QField como botones

Widget de archivos adjuntos

Preparación en escritorio

El tipo de widget Archivo adjunto se utiliza con campos que almacenan la ruta de acceso a los archivos.

Se puede usar para:

  • Muestra y toma fotos o agrega imágenes desde la galería.
  • Escuchar y grabar clips de sonido
  • Mostrar y grabar vídeos
  • Mostrar enlaces a archivos externos como PDF o documentos
  • Agregue bocetos directamente en QField

Imagen adjunta al formulario
Imagen adjunta al formulario

Audio del archivo adjunto del formulario
Audio del archivo adjunto del formulario

Video adjunto de formulario
Video adjunto de formulario

Nota

La ruta debe ser "relativa". Las imágenes, audios, vídeos, archivos PDF y documentos se almacenan en un subdirectorio del proyecto, al que apunta el enlace del campo de texto.

Puedes añadir un nuevo elemento al hacer clic en la opción de cámara, vídeo, micrófono o documento. Según la opción predeterminada que hayas seleccionado, se mostrará una de ellas dentro del formulario.

Medios
Medios

Al Sincronizar también se debe copiar el subdirectorio con las imágenes, vídeos, audios, PDF y documentos.

De forma predeterminada, al añadir archivos adjuntos, QField muestra el archivo automáticamente. La opción hipervínculo en el widget de adjuntos deshabilitará esta función y mostrará solo la ruta al hipervínculo del archivo.

Flujo

Establecer una ruta de archivo adjunto específica

Preparación del escritorio

En QFieldSync, puede configurar la ruta de los archivos adjuntos. Por defecto, las imágenes se guardan en la carpeta "DCIM", las grabaciones de audio en la carpeta "audio" y los vídeos en la carpeta "video" con una marca de tiempo como nombre.

  1. Vaya a Propiedades > QField > Configuración de archivos adjuntos.
  2. Use expresiones específicas para configurar los nombres de los archivos adjuntos.

Paths
Paths
Preparación de Desktop

Widget de relación de valores

Preparación en escritorio

El widget Relación de valores ofrece valores de una tabla relacionada en un cuadro combinado. Aquí tiene varias opciones para elegir:

  • Capa: Establezca la tabla o capa que almacena los valores que se seleccionarán.
  • Columna clave: establece la columna que contiene los valores que se guardarán.
  • columna de valores: establece la columna real que contiene los valores que se mostrarán durante la recopilación.

  • Ordenar por valor: establece el orden en que deben mostrarse los valores mostrados. Esto puede ser por "clave", "valor" o una columna específica.

  • Columna de grupo: puedes agrupar tus valores en función de otra columna. (por ejemplo, si desea recopilar información sobre especies de árboles, puede agrupar los valores por género).
  • Permitir valor NULO: el campo puede permanecer en blanco.
  • Usar Completador: Puede utilizar esta opción para completar automáticamente sus campos. Al seleccionar la lupa, puede buscar entre los valores disponibles y seleccionar el que corresponda.
  • Permitir selecciones múltiples: si está habilitado, puede seleccionar múltiples valores en una función.

Flujo

Configuración de valores de grupo

  1. Seleccione la columna que se usará para organizar los elementos. Los valores de esta columna servirán como título del grupo.

  2. (Opcional) Habilite Mostrar nombre del grupo si desea agregar el título de su grupo como encabezado independiente. Esto crea una clara separación entre los diferentes grupos, facilitando la navegación por la lista.

Primera configuración
Primera configuración

Segunda configuración
Segunda configuración

Tercera configuración
Tercera configuración

Diferentes configuraciones en QField
Diferentes configuraciones en QField

Flujo

Usar autocompletado

  1. Vaya a la capa vectorial Propiedades... > Formulario de atributos.

  2. El tipo de widget debe ser "Relación de valores".

  3. Active la opción "Usar autocompletado".

Habilitar autocompletado en QGIS
Habilitar autocompletado en QGIS

Aquí tiene un vídeo que muestra cómo funciona en QField

Visibilidad condicional

Preparación en escritorio

Puede ocultar grupos enteros según expresiones. Esto es útil cuando ciertos atributos solo se requieren en determinadas circunstancias.

Flujo

Ejemplo: Acceder al estado de las especies de árboles

Algunas podrían tener una enfermedad y usted tiene una lista de posibles enfermedades.

Un flujo de trabajo típico paso a paso podría ser el siguiente:

  1. Crear un grupo.

  2. Definir una expresión de visibilidad para el grupo. Ej.: Solo si el árbol está marcado como "enfermo", aparecerá el campo "enfermedad".

  3. Agregar al grupo el campo que se mostrará solo después de establecer los criterios de la expresión. Ej.: Agregaremos el campo "tipo de enfermedad" al grupo.

Configuración de un cuadro de grupo que solo se mostrará si la casilla "enfermedad" está marcada.
Configuración de un cuadro de grupo que solo se mostrará si la casilla "enfermedad" está marcada.

En QField se verá como en el video a continuación.

Definir Restricciones

Preparación en escritorio

Los campos de atributos pueden tener restricciones asociadas. Las restricciones son reglas en forma de expresiones. Antes de poder guardar una característica, deben cumplirse todas las restricciones. Se puede añadir una descripción que se mostrará si no se cumple una restricción.

Configuración de una restricción dentro de un rango
Configuración de una restricción dentro de un rango

¡¡¡Ejemplos!!! No se puede introducir un valor de elevación superior a la montaña más alta de este país.

``` sql
"elevation" < 5000
```

*It is required to fill in an identifier.*

``` sql
"identifier" IS NOT NULL
```

Definir Valores Predeterminados

Preparación en escritorio

Los campos pueden tener valores predeterminados configurados. Los valores predeterminados se insertan en el formulario de atributos al digitalizar una nueva característica. Son visibles y se pueden modificar siempre que el campo sea editable.

Configuración de una fecha formateada como valor predeterminado
Configuración de una fecha formateada como valor predeterminado

Atención

La opción "Aplicar valor predeterminado al actualizar" debe utilizarse con cuidado y no para campos que actúan como claves principales.

Trabajar con expresiones

Al crear expresiones para proyectos destinados a ser utilizados con QField, se recomienda utilizar nombres de capas en lugar de ID de capas. Esta recomendación se debe a que, durante el proceso de conversión del proyecto a través de QFieldSync, las capas resultantes pueden recibir ID diferentes, lo que puede dar lugar a evaluaciones incorrectas de las expresiones. Al utilizar nombres de capas, se garantiza que las expresiones se evalúen de forma coherente y precisa en los diferentes estados del proyecto.

Uso de nombres de capas en expresiones
Uso de nombres de capas en expresiones

Variables adicionales

Para obtener más información sobre cómo almacenar información relacionada con su posición en los atributos de objetos, consulte la documentación GNSS.

Para los usuarios de QFieldCloud, se pueden utilizar dos variables en las expresiones que incluyen los valores predeterminados de los formularios de atributos:

  • @cloud_username que devuelve el nombre del usuario actualmente conectado a QFieldCloud.
  • @cloud_useremail que devuelve la dirección de correo electrónico del usuario actualmente conectado a QFieldCloud.

Ejemplos

Insertar información de posicionamiento como variable:

@position_horizontal_accuracy

Insert the current date and time:

now()

Insert the length of the digitized line:

length($geometry)

Configurar variables globales en el dispositivo e insertarlas.

@operator_name

Si desea asignar un código de región según la ubicación donde se inserta una nueva característica, puede hacerlo utilizando una expresión agregada:

aggregate( layer:='regions', aggregate:='max', expression:="code", filter:=intersects( $geometry, geometry( @parent ) ) )

Para transformar las coordenadas recibidas de \@position_coordinate al sistema de coordenadas de su proyecto:

x(transform(@position_coordinate, 'EPSG:4326', @project_crs))
y(transform(@position_coordinate, 'EPSG:4326', @project_crs))

Si desea utilizar los resultados de ajuste después de dibujar una línea, puede utilizar la variable @snapping_results. El siguiente código extrae el valor del atributo id de la coincidencia de ajuste del primer punto de una línea.

with_variable(
  'first_snapped_point',
  array_first( @snapping_results ),
  attribute(
    get_feature_by_id(
      @first_snapped_point['layer'],
      @first_snapped_point['feature_id']
    ),
    'id'
  )
)

Búsqueda en controles de relación de valores y de referencia de la relación

Es posible buscar valores en un widget de relación de valores o referencia de relación utilizando la lupa situada junto al campo.

!!! nota: Defina la expresión de visualización para las capas correspondientes; esta se utilizará para buscar entidades.

Esto se configura en *Propiedades...* de la capa vectorial > *Visualización*.

Definir controles QML

Los widgets QML personalizados pueden ser útiles para integrar acciones avanzadas en formularios.

Ejemplo

Definimos añadir un botón que abre una aplicación de mapas y navegación de terceros. Esto es útil para, por ejemplo, abrir la navegación paso a paso en la aplicación nativa del dispositivo del usuario.

```qml
import QtQuick 2.0
import QtQuick.Controls 2.0

Button {
    width: 200
    height: width/5
    text: "Open in Maps"
    onClicked: {
        Qt.openUrlExternally(expression.evaluate("'geo:0,0?q=' || $y || ',' || $x"));
    }
}
```

La URI geo anterior está adaptada para funcionar con Android. Para Apple Maps, la URI se puede cambiar a 'geo:' || $y || ',' || $x.

![](../../assets/images/qml_widget_button.png)