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.

Configura un widget relazione

Desktop preparation

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

Il widget delle relazioni mostra tutte gli elementi figlio 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.

Configure Attachment Widget

Desktop preparation

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

Può essere utilizzato per:

  • show and take photos or add pictures from the gallery
  • listen and record sound clips
  • show and record videos
  • show links to external files like PDFs or documents

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.

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

Configurable attachment path

Desktop preparation

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

Configurare un Widget di Relazione dei Valori

Desktop preparation

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

Desktop preparation

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

Desktop preparation

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

Desktop preparation

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

Variabili aggiuntive

For more information regarding storing information related to your position in object attributes, refer to the deticated GNSS documentation.

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

Inserire 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.

Note

Define the display expression for the concerned layers, this will be used for searching for features. This is configured under Vector Layer Properties > Display

Configurare Valore Completamento Automatico

Desktop preparation

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

Custom QML widgets can be useful to integrate advanced actions into forms. In this example we define add a button that open a third-party map and navigation app. This is useful to open e.g. turn-by-turn navigations on the device-native app for the user.

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

The geo URI above is adapted to work with Android. For Apple Maps the URI can be changed to 'geo:' || $y || ',' || $x.