Saltar a contenido

Formulario de atributos

QField crea formularios similares, pero no iguales a los de QGIS. Los controles de campos de QGIS son compatibles con el mejor esfuerzo y están optimizados para el uso móvil.

Tipo de control Soporte Notas
Edición de texto - No se admite HTML
- La entrada numérica es obligatoria según el tipo.
Casilla de verificación
Mapa de valores
Oculto
Adjunto Este campo se combina con la integración de la cámara. También es capaz de abrir otros archivos como pdf y doc (si tiene un visor apropiado) Adjuntos (configuración de fotos)
Fecha Hora
Rango
Referencia de relación
Control de relaciones
Relación de valores
Generador de UUID
Control QML / HTML
Otros Financiación

Editable

Se respeta la propiedad editable de los campos.

Recordar últimos valores

QField ofrece un control mucho más fino sobre los últimos valores utilizados e ignora la configuración de QGIS.

Suprimir formulario de atributos

La configuración suprimir formulario de atributos se aplica directamente al formulario QField.

Formularios del diseñador de arrastrar y soltar

Los grupos y pestañas de los formularios del diseñador de arrastrar y soltar son compatibles.

En el "Formulario de atributos", puede estructurar sus formularios utilizando varios contenedores, como pestañas y grupos, y mejorar la interactividad incorporando visibilidad condicional basada en expresiones. Si activa el Diseñador de arrastrar y soltar, obtendrá flexibilidad para reordenar los campos de atributos, así como acceso a widgets que no están directamente vinculados a campos específicos (por ejemplo, widgets HTML/QML).

Configurar un control de relaciones

Preparación en escritorio

Para más información, consulte el capítulo de relaciones de la Documentación oficial de QGIS.

El control de relaciones muestra en una lista todos los objetos espaciales hijos referenciados. Es posible añadirlos, eliminarlos y abrirlos.

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 las claves primarias de los padres se utilizan como claves externas en los objetos espaciales de los hijos de referencia, estas claves primarias se deben guardar para su uso incluso después de la sincronización de vuelta a los datos originales. Por lo tanto, recomendamos utilizar valores estables como UUID para las claves primarias.

Es posible añadir ya hijos de un padre que está a punto de ser añadido. Esta posibilidad se bloqueará si no hay una clave primaria válida en el padre o se violan las restricciones. En caso de que la adición del objeto espacial padre se cancele después de que se hayan añadido ya algunos hijos, los hijos también se eliminarán.

Relaciones Muchos-a-Muchos

En las relaciones de muchos a muchos, según la configuración de cardinalidad en Propiedades de las capas vectoriales de QGIS, al añadir, eliminar o abrir una entrada en la lista afecta directamente a la capa hija (en la cardinalidad directa) o en la tabla de enlace (en la cardinalidad múltiple).

El segundo caso se suele utilizar cuando hay información adicional de la relación (por ejemplo, el porcentaje) en la tabla de enlace.

En el caso de la cardinalidad muchos-a-uno en relaciones muchos-a-muchos la Expresión de visualización debe establecerse en la tabla de enlace.

Configuración del umbral de elementos para los widgets del editor de mapas de valores

Para mejorar la experiencia del usuario en QField, es posible controlar el umbral de elementos en el que los widgets del editor del mapa de valores cambian a una interfaz de botones de alternancia. Esta prestación permite a los usuarios acceder rápidamente a los elementos de QField cuando hay pocos y proporciona una interfaz más intuitiva cuando se trata de un gran número de elementos.

Para activar la interfaz de botones basculantes

  1. Abra Propiedades de capa haciendo clic con el botón derecho en la capa deseada y seleccionando 'Propiedades' en el menú contextual.

  2. Navegue hasta la pestaña QField situada dentro del cuadro de diálogo Propiedades de capa.

  3. Aquí encontrará una opción para especificar la cantidad de elementos que activarán la transición a una interfaz de botón de alternancia. Introduzca el valor de umbral preferido según sus necesidades.

QFieldSync Layer Properties
QFieldSync Layer Properties

QField Value Map Editor as List
QField Value Map Editor as List

QField Value Map Editor as Buttons
QField Value Map Editor as Buttons

Configurar el widget de archivos adjuntos

Preparación en escritorio

El tipo de control Adjunto se utiliza con campos que almacenan una ruta a archivos.

Se puede usar para:

  • mostrar y hacer fotos o añadir fotos desde la galería
  • escuchar y grabar clips de sonido
  • mostrar y grabar vídeos
  • mostrar enlaces a archivos externos, como PDF o documentos

Imagen adjunta al formulario
Imagen adjunta al formulario

Formulario de audio adjunto
Formulario de audio adjunto

Vídeo de adjuntos de formularios
Vídeo de adjuntos de formularios

La ruta debe ser relativa. Las imágenes, audios, vídeos, pdf y docs se almacenados en un subdirectorio del proyecto, donde el enlace almacenado en en el campo de texto.

Nota

QGIS 3.30 o más reciente es necesario para la funcionalidad de audio y vídeo

En QField se muestran los archivos adjuntos. Al hacer clic en el símbolo de los iconos se inicia la grabación de la cámara o de audio para actualizar las imágenes, vídeos o audios con un nuevo medio.

Media
Media

En la sincronización, el subdirectorio con las imágenes, vídeos, audios, pdf y documentos tiene que ser copiado también.

La opción hipervínculo en el control de adjuntos desactivará la funcionalidad de la cámara y habilitará un hipervínculo para abrir un documento (pdf, doc, ...).

Ruta de adjuntos configurable

Preparación en escritorio

QFieldSync ofrece la posibilidad de configurar la ruta de los archivos adjuntos.

  • Vaya al complemento QFieldSync > Propiedades de las capas.

Utilice expresiones para especificar 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 "vídeo" con una marca de tiempo como nombre.

Rutas
Rutas

Configurar un control de relación de valores

Preparación en escritorio

El control Relación de valores ofrece valores de una tabla relacionada en un cuadro combinado. Puede seleccionar capa, columna clave y columna de valor. Hay disponibles varias opciones para cambiar los comportamientos estándar: permitir valor nulo, ordenar por valor y permitir selecciones múltiples. El control mostrará una lista desplegable o de selección múltiple de los objetos referenciados.

Configurar la visibilidad condicional

Preparación en escritorio

Los grupos se pueden ocultar en base a una expresión. Esto es útil cuando ciertos atributos sólo se requieren bajo ciertas condiciones. Por ejemplo imagíne que se mapean árboles. Algunos de ellos podrían tener una enfermeda y usted tiene una lista de posibles enfermedades. Para no abarrotar el formulario con muchos campos haga un grupo y configure una expresión de visibilidad para un grupo "enfermedades". Añada un campo "enfermedad" con una casilla de verificación. Sólo cuando la casilla esté marcada, la lista de enfermedades estará disponible.

Configuración de un cuadro de grupo que sólo se mostrará si la casilla " measures_taken " está marcada.
Configuración de un cuadro de grupo que sólo se mostrará si la casilla " measures_taken " está marcada.

Veamos lo que tomamos en el campo:

Definir Restricciones

Preparación en escritorio

Los campos de atributos pueden tener restricciones. Las restricciones son expresiones que deben ser evaluadas como Verdadero (o 1) para poder guardar el formulario. Las restricciones se configuran por campo y se puede añadir una descripción que se mostrará si una restricción no se cumple.

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

Casos de uso común

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

"elevation" < 5000

Es requerido rellenar un identificador.

"identificador" IS NOT NULL

Definir Valores Predeterminados

Preparación en escritorio

Los campos pueden tener configurados valores predeterminados. Los valores predeterminados se insertan en el formulario de atributos cuando se digitaliza un nuevo elemento. Son visibles y pueden modificarse mientras el campo sea editable. Pueden basarse en la geometría o en variables de expresión.

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

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

Uso de nombres de capa en expresiones
Uso de nombres de capa en expresiones

Variables adicionales

Para más información sobre el almacenamiento de información relacionada con su posición en los atributos del objeto, consulte la documentación del GNSS dedicada.

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.

Casos de uso común

Insertar información de posicionamiento como variable:

@position_horizontal_accuracy

Insertar la fecha y hora actuales:

now()

Insertar la longitud de la línea digitalizada:

length($geometry)

Configurar las variables globales en el dispositivo e insertarlas:

@nombre_operador

Si desea asignar un código de región basado en la ubicación donde se inserta un nuevo objeto espacial, 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 ))

::: {#snapping_results} Si desea utilizar los resultados de ajuste después de dibujar una línea, puede utilizar la variable [@snapping_results]{.title-ref}. El siguiente código extrae el valor del atributo [id]{.title-ref} del 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 control de relación de valores o referencia de relación utilizando la lupa junto al campo.

Nota

Defina la expresión de visualización para las capas en cuestión. Esto será utilizado para buscar los objetos. Esto se configura en Propiedades de capas vectoriales > Visualización

Configurar el valor de autocompletar

Preparación en escritorio

La casilla "Usar completador" debe estar marcada para poder utilizar el autocompletar en la relación de valores.

Habilitar autocompletar en QGIS
Habilitar autocompletar en QGIS

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

Definir controles QML

Los controles QML personalizados pueden ser útiles para integrar acciones avanzadas en los formularios. En este ejemplo definimos añadir un botón que abra una aplicación de mapas y navegación de terceros. Esto es útil para abrir, por ejemplo, navegaciones giro a giro en la aplicación nativa del dispositivo para el usuario.

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"));
    }
}

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