Formulario de atributos¶
QField crea formularios similares a los de QGIS, pero con algunas diferencias. Los widgets de campo de QGIS son compatibles en la medida de lo posible y están optimizados para su uso en dispositivos móviles.
Tipo de control | Soporte | Notas |
---|---|---|
Edición de texto | - No se admite HTML. - La entrada numérica se aplica en función del tipo de campo. |
|
Casilla de verificación | ||
Mapa de valores | ||
Oculto | ||
Adjunto | Este campo se combina con la integración de la cámara. También puede abrir otros archivos como PDF y DOC (si dispone del visor adecuado) Adjunto (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 |
Configuración del formulario 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. Al igual que en QGIS, se pueden 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.
Editable¶
Se respeta la propiedad editable de los campos.
Recordar últimos valores¶
QField ofrece un control más preciso sobre los últimos valores utilizados que QGIS y utiliza su propia configuración en lugar de la 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 diversos contenedores, como pestañas y grupos, y mejorar la interactividad incorporando visibilidad condicional basada en expresiones. Al habilitar el Diseñador de arrastrar y soltar, obtienes la flexibilidad de 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 obtener información detallada sobre cómo configurar relaciones entre capas en QGIS, consulte la documentación de QGIS sobre configuración de relaciones entre varias capas. Para controlar aún más la visibilidad y el número de elementos relacionados que se muestran en QField, consulte las instrucciones para configurar la visibilidad máxima de elementos para QField.
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 se utiliza como clave externa en las características secundarias de referencia, debe ser segura (debe ser única) incluso después de la sincronización con el escritorio. Por lo tanto, se recomienda usar UUID para las claves principales. Consulte [Trabajar con Geopackages](../get-started/tutorials/advanced-setup-qfc/#working-with-geopackages para obtener más información.
Es posible añadir hijos de un padre que se va a añadir. Esta posibilidad se bloqueará si no hay una clave primaria 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 añadir algunos hijos, estos también se eliminarán.
Relaciones Muchos-a-Muchos¶
En las relaciones muchos a muchos, según la configuración de cardinalidad en las Propiedades de la capa vectorial de QGIS, al añadir, eliminar o abrir una entrada en la lista se afecta directamente a la capa secundaria (en la cardinalidad directa) o a la tabla de enlace (en la cardinalidad 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.
Configuración de relaciones ordenadas para QGIS y QField¶
El widget Editor de relaciones ordenadas permite reordenar las características secundarias vinculadas en función de un campo específico.
1. Instalar el complemento¶
Asegúrese de haber instalado el complemento Editor de relaciones ordenadas desde el repositorio oficial o a través del "Administrador de complementos" en QGIS.
2. Configure el diseño¶
Vaya a la sección Formulario de atributos de la configuración de su capa y establezca el editor de diseño en Diseñador arrastre y suelte.
3. Configurar el widget del editor de relaciones¶
En el menú desplegable Tipo de widget Relación, seleccione Editor de relaciones ordenadas. A continuación, configure el widget con los siguientes ajustes:
-
Campo de ordenación: Especifique el campo de la capa secundaria que se utilizará para determinar el orden de las características.
-
Descripción: Defina una expresión que se mostrará para cada elemento secundario de la lista.
-
Ruta de la imagen (opcional): Proporcione una ruta a una imagen o icono para mejorar visualmente la lista. Se trata de una expresión que se resuelve dinámicamente.
Configuración de un 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 del botón de alternancia:¶
-
Abre Propiedades de capa haciendo clic con el botón derecho del ratón en la capa deseada y seleccionando 'Propiedades' en el menú.
-
Navegue hasta la pestaña QField situada dentro del cuadro de diálogo Propiedades de capa.
-
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.
Configuración del 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:
- 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
La ruta debe establecerse como relativa. Las imágenes, audios, vídeos, archivos PDF y documentos se almacenan en un subdirectorio del proyecto, al que apunta el enlace almacenado 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 cámara o la grabación de audio para actualizar las imágenes, los vídeos o los audios con un nuevo medio.
Al sincronizar, también hay que copiar el subdirectorio con las imágenes, vídeos, audios, archivos PDF y documentos.
La opción hipervínculo del widget de adjuntar archivos desactivará la función 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.
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.
Valores de grupo en el widget de relación de valores¶
Puede organizar y optimizar la apariencia de sus widgets de relación de valores agrupando los elementos relacionados. Esta función le permite categorizar los valores en una lista desplegable o en una vista de tabla según el contenido de una columna seleccionada.
Por ejemplo, si tienes una lista de ciudades, puedes agruparlas por sus respectivos estados. Esto facilita a los usuarios la navegación y la búsqueda de los valores que necesitan, especialmente en listas con un gran número de elementos.
Configuración¶
La agrupación se configura en los ajustes del widget Relación de valores utilizando las siguientes opciones:
- Columna de grupo: Elija la columna de la capa que se utilizará para organizar los elementos. Los valores de esta columna actuarán como título del grupo.
- Mostrar nombre del grupo: Marque esta casilla para mostrar el título del grupo como un encabezado diferenciado dentro del widget. Esto crea una separación clara entre los diferentes grupos, lo que facilita la navegación por la lista.
Configurar la visibilidad condicional¶
Preparación en escritorio
Los grupos se pueden ocultar en función de una expresión. Esto resulta útil cuando ciertos atributos solo son necesarios en determinadas condiciones. Como ejemplo, imagina que estás mapeando árboles. Algunos de ellos pueden tener una enfermedad y tú tienes una lista de posibles enfermedades. Para no saturar el formulario con muchos campos, crea un grupo y configura una expresión de visibilidad para el grupo "enfermedades". Añade un campo "enfermedad" con el tipo de datos booleano. Solo cuando se marque la casilla de verificación, la lista de enfermedades estará disponible.
En QField se verá como en el vídeo que aparece 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.
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 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.
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.
Variables adicionales¶
Para obtener más información sobre el almacenamiento de información relacionada con su posición en atributos de objeto, consulte la deticada 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.
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 quiere asignar un código de región basado en la localización donde se inserta un objeto nuevo, puede hacerlo usando una expresión de agregación:
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 del 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} 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 en cuestión, esto se utilizará para buscar características. Esto se configura en Propiedades de las capas vectoriales > Visualización.
Configurar el valor de autocompletar¶
Preparación en escritorio
La casilla "Utilizar completador" debe estar marcada para poder utilizar el autocompletado en la relación de valores.
Aquí tienes 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
.