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.

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.

Configure Attachment Widget

Preparación en escritorio

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

Se puede usar para:

  • show and take photos or add pictures from the gallery
  • escuchar y grabar clips de sonido
  • mostrar y grabar vídeos
  • mostrar enlaces a archivos externos, como PDF o documentos

Form attachment picture
Form attachment picture

Form attachment audio
Form attachment audio

Form attachment video
Form attachment video

The path should be set to relative. The pictures, audios, videos, pdf and docs are stored then in a sub-directory of the project, where the link stored in the textfield is pointing to.

Note

QGIS 3.30 or newer is required for the audio and video functionality

In QField the attachments are displayed. By clicking the icons symbol the camera or audio record is started to update the pictures, videos or audios with a new media.

Media
Media

On synchronization the sub-directory with the pictures, videos audios, pdf and docs has to be copied as well.

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 provides the possibility to configure the path of attachments.

  • Go to QFieldSync plugin > Layers Properties

Use expressions to specify the path of the attachments. By default, pictures are saved into the "DCIM" folder, audio recordings are saved into the "audio" folder and videos are saved into "video" with a timestamp as name.

Paths
Paths

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

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.