Vai al contenuto

Form degli attributi

QField crea dei form simili ma non uguali a quelli di QGIS. I widget QGIS per i campi, sono supportati al meglio e ottimizzati per l'uso mobile.

Tipo di widget Supporto Note
Modifica testo - HTML non è supportato
- Input numerico viene imposto in base al tipo.
Casella di controllo
Mappa valori
Nascosto
Allegato Questo campo è combinato con l'integrazione della fotocamera. Permette anche di aprire altri tipi di file come pdf e doc (se hai un visualizzatore appropriato) Allegato (impostazioni foto)
Data/Ora
Intervallo
Riferimento alla relazione
Widget relazione
Relazione valore
Generatore UUID
Widget QML / HTML
Altri Funding

Editabile

L'impostazione editabile sui campi è rispettata.

Ricorda l'ultimo valore

QField offre un controllo molto più dettagliato sugli ultimi valori utilizzati e ignora le impostazioni di QGIS.

Nascondi modulo all'inserimento di un elemento

L'impostazione Nascondi modulo all'inserimento di un elemento è direttamente applicata al form QField.

Designer trascina e rilascia

Gruppi e tab creati nel designer "trascina e rilascia" sono supportati.

In the "Attributes Form," you can structure your forms using various containers, such as tabs and groups, and enhance interactivity by incorporating expression-based conditional visibility. By enabling the Drag and Drop Designer, you gain the flexibility to re-order attribute fields, as well as gaining access to widgets that are not directly tied to specific fields (e.g., HTML/QML widgets).

Configura un widget relazione

Preparazione da Desktop

Per maggiori informazioni consulta il capitolo sulle relazioni della Documentazione QGIS.

Il widget delle relazioni mostra tutti gli elementi figlii di riferimento in un elenco. È possibile aggiungerli, eliminarli e aprirli.

L'identificazione visiva delle voci della lista avviene tramite il Mostra Espressione del layer figlio.

Gestione chiavi

Poiché le chiavi primarie dei layer padre sono utilizzate come chiavi esterne negli elementi dei layer figli di riferimento, queste chiavi primarie devono essere conservate per l'uso anche dopo la sincronizzazione con i dati originali. Pertanto, si consiglia di utilizzare valori stabili come UUIDs per le chiavi primarie.

È possibile aggiungere già dei figli da un genitore che sta per essere aggiunto. Questa possibilità sarà bloccata se non esiste una chiave primaria valida sul genitore o i vincoli sono violati. Nel caso in cui l'aggiunta dell'elemento genitore viene annullata dopo che alcuni figli sono già stati aggiunti, anche i figli vengono eliminati.

Relazioni Molti-a-molti

Nelle relazioni molti-a-molti, secondo la configurazione della cardinalità nelle Proprietà del Layer Vettoriale in QGIS, l'aggiunta, l'eliminazione o l'apertura di una voce nella lista influisce direttamente sul layer figlio (nel caso di cardinalità diretta) o sulla tabella di collegamento (nel caso di cardinalità molti-a-uno).

Il secondo caso è di solito usato quando ci sono informazioni di relazione aggiuntive (es. percentuale) nella tabella di collegamento.

In caso di cardinalità molti-a-uno su relazioni molti-a-molti il Mostra Espressione deve essere impostato sulla tabella di collegamento.

Item Threshold Configuration for Value Map Editor Widgets

To enhance the user experience within QField, it is possible to control the item threshold at which point the value map editor widgets switch to a toggle buttons interface. This feature allows users to quickly access items in QField when there are few and providing a more intuitive interface when dealing with a large number of items.

To Activate Toggle Button Interface

  1. Open Layer Properties by right-clicking on the desired layer and selecting 'Properties' from the context menu.

  2. Navigate to the QField tab located within the Layer Properties dialog.

  3. Here, you will find an option to specify the quantity of items that will trigger the transition to a toggle button interface. Enter the preferred threshold value according to your needs.

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

Configurare il Widget Allegati

Preparazione da Desktop

Il widget di tipo Allegato viene utilizzato con i campi che memorizzano il percorso ai file.

Può essere utilizzato per:

  • mostrare e scattare foto o aggiungere immagini dalla galleria
  • ascoltare e registrare clip audio
  • mostrare e registrare video
  • mostrare link a file esterni come PDF o documenti

Form attachment picture
Form attachment picture

Form attachment audio
Form attachment audio

Form attachment video
Form attachment video

Il percorso deve essere impostato su relativo. Immagini, audio, video, pdf e documenti sono quindi archiviati in una sottocartella del progetto, alla quale sta puntanto il link memorizzato nel campo di testo (textfield).

Note

QGIS 3.30 o versioni successive sono necessarie per la funzionalità audio e video

In QField vengono visualizzati gli allegati. Facendo clic sul simbolo delle icone la videocamera o la registrazione audio viene avviata per aggiornare le immagini, i video o gli audio con un nuovo media.

Media
Media

Durante la sincronizzazione anche la sottodirectory con le immagini, video, audio, pdf e documenti deve essere copiata.

L'opzione hyperlink sul widget degli allegati disabilita la funzionalità della fotocamera e abilita un collegamento ipertestuale per aprire un documento (pdf, doc, ...).

Percorso dell'allegato configurabile

Preparazione da Desktop

QFieldSync offre la possibilità di configurare il percorso degli allegati.

  • Vai a Plugin QFieldSync >Proprietà Layer

Usa le espressioni per specificare il percorso degli allegati. Per impostazione predefinita, le immagini vengono salvate nella cartella "DCIM", le registrazioni audio vengono salvate nella cartella "audio" e i video vengono salvati in "video" con un timestamp come nome.

Paths
Paths

Configurare un Widget di Relazione dei Valori

Preparazione da Desktop

Il widget Value Relation offre i valori di una tabella correlata in una casella combinata. Puoi selezionare layer, colonna chiave e colonna valore. Sono disponibili diverse opzioni per modificare i comportamenti standard: consenti valore nullo, ordina per valore e consenti selezioni multiple. Il widget visualizzerà un menu a tendina o a selezione multipla degli elementi di riferimento.

Configurare la Visibilità Condizionale

Preparazione da Desktop

I gruppi possono essere nascosti in base a un'espressione. Questo è utile quando alcuni attributi sono richiesti solo in determinate condizioni. Come esempio immagina di mappare degli alberi. Alcuni di essi potrebbero avere una malattia e tu hai un elenco di possibili malattie. Per non ingombrare il modulo con molti campi, crea un gruppo e configura un'espressione di visibilità per il gruppo "malattie". Aggiungi un campo "malattia" con una casella di controllo. Solo quando la casella è selezionata, l'elenco delle malattie sarà disponibile.

Configurazione di una casella di gruppo che verrà mostrata solo se la casella di controllo "measures_taken" è selezionata
Configurazione di una casella di gruppo che verrà mostrata solo se la casella di controllo "measures_taken" è selezionata

Vediamo cosa abbiamo sul campo:

Definire Vincoli

Preparazione da Desktop

I campi attributo possono avere dei vincoli. I vincoli sono espressioni che devono essere valutate con True (o 1) per poter poter salvare il modulo. I vincoli sono configurati per ogni campo e si può aggiungere una descrizione che verrà visualizzata se un vincolo non è soddisfatto.

Configurazione di un vincolo all'interno di un intervallo
Configurazione di un vincolo all'interno di un intervallo

Casi di uso comune

Non puoi inserire un valore di elevazione superiore alla montagna più alta di questo paese.

"elevation" < 5000

è chiesto di inserire un idenfificatore.

"identifier" IS NOT NULL

Definire i valori predefiniti

Preparazione da Desktop

I campi possono essere configurati con valori predefiniti. I valori predefiniti vengono inseriti nel modulo dell'attributo quando si digitalizza un nuovo elemento. Sono visibili e possono essere modificati finché il campo è modificabile. I valori predefiniti possono essere basati sulla geometria o su variabili di espressione.

Configurazione di una data formattata come valore predefinito
Configurazione di una data formattata come valore predefinito

When creating expressions for projects intended to be used with QField, it is recommended to use layer names rather than layer IDs. This recommendation stems from the fact that during the project conversion process via QFieldSync, the resulting layers may receive different IDs, which can lead to incorrect expression evaluations. By using layer names, you ensure that expressions are evaluated consistently and accurately across different project states.

Using layer names in expressions
Using layer names in expressions

Variabili aggiuntive

Per maggiori informazioni sulla memorizzazione delle informazioni relative alla tua posizione negli attributi dell'oggetto, fai riferimento alla documentazione GNSS.

Per gli utenti di QFieldCloud, due variabili possono essere utilizzate nelle espressioni che includono i valori predefiniti degli attributi dei moduli: - @cloud_username che restituisce il nome dell'utente QFieldCloud attualmente connesso. - @cloud_useremail che restituisce l'indirizzo email dell'utente QFieldCloud attualmente connesso.

Casi di uso comune

Inserisci le informazioni di posizionamento come variabile:

@position_horizontal_accuracy

Inserisci l'ora e la data corrente:

now()

Inserisci la lunghezza della linea digitalizzata:

length($geometry)

Configura le variabili globali sul dispositivo e inseriscili.

@operator_name

Se si desidera assegnare un codice regionale in base alla posizione in cui viene inserita una nuova funzionalità, è possibile utilizzare un'espressione aggregata:

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

Per trasformare le coordinate ricevute da \@position_coordinate nel sistema di coordinate del tuo progetto:

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

::: {#snapping_results} Se vuoi utilizzare i risultati dello snapping dopo aver tracciato una linea, puoi utilizzare la variabile [\@snapping_results]{.title-ref}. Il codice seguente estrae il valore dell'attributo [id]{.title-ref} della corrispondenza di snapping del primo punto di una linea. :::

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

Ricerca nei widget mappa valori e riferimento alla relazione

È possibile cercare dei valori in una widget relazione valore o riferimento della relazione usando la lente vicino al campo.

Nota

Definisci l'espressione di visualizzazione per i layer interessati, che verrà usata per la ricerca degli elementi. Questo è configurato in Proprietà Layer Vettore > Visualizza

Configurare Valore Completamento Automatico

Preparazione da Desktop

La casella di spunta "Usa completamento" deve essere selezionata per poter utilizzare il completamento automatico nella relazione dei valori.

Enable auto-complete within QGIS
Enable auto-complete within QGIS

Ecco un video che mostra come funziona su QField

Definisci i widget QML

I widget QML personalizzati possono essere utili per integrare azioni avanzate nei form. In questo esempio definiamo aggiungi un pulsante che apre una mappa e un'app di navigazione di terze parti. Ciò è utile per aprire, ad esempio, le navigazioni turn-by-turn sull'app nativa del dispositivo per l'utente.

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

L'URI geo sopra è adattato per funzionare con Android. Per Apple Maps l'URI può essere cambiato in 'geo:' || $y || ',' || $x.