Outdated documentation
The latest documentation was moved to docs.qfield.org
Les formulaires QField sont similaires à ceux de QGIS, mais pas identiques.
Le paramètre « formulaire de suppression d’attribut » est directement appliqué au formulaire QField.
Les outils d’édition de champ de QGIS sont supportés du mieux possible.
Type de widget | Support | Notes |
---|---|---|
Edition de texte | ✔ |
|
Case à cocher | ✔ | |
Value Map | ✔ | |
Caché | ✔ | |
Fichier joint | ✔ | Ce champ est lié à l’appareil photo. Il est toutefois également possible d’ouvrir d’autres types de fichiers comme des .pdf et des .doc (si l’utilisateur possède un visualisateur adapté) Fichier joint (propriétés de la photo) |
Date Heure | ✔ | |
Référence de relation | ✔ | |
Outil Relation | ✔ | |
Valeur relationnelle | ✔ | |
Autres | ✘ | Financement |
Pour plus d’informations, référez-vous à la documentation officielle : QGIS Documentation.
Le widget relation montre toutes les caractéristiques de l’enfant référencé dans une liste. Il est possible de les ajouter, de les supprimer et de les ouvrir.
L’identification visuelle des entrées de la liste se fait via l” « expression d’affichage » de la couche enfant.
Manipulation des clés
Étant donné que les clés primaires des parents sont utilisées en tant que clés étrangères sur les entités enfant de référence, ces clés primaires doivent être enregistrées pour être utilisées même après la synchronisation avec les données d’origine. Par conséquent, nous vous recommandons d’utiliser des valeurs stables telles que les UUID pour les clés primaires.
Il est possible d’ajouter les enfants d’un parent qui est sur le point d’être ajouté. Cette possibilité sera bloquée s’il n’y a pas de clé primaire valide sur le parent ou si les contraintes ne sont pas respectées. Si l’ajout de la caractéristique parentale est annulé après que certains enfants ont déjà été ajoutés, les enfants sont également supprimés.
Relations de plusieurs-à-plusieurs
Sur les relations plusieurs-à-plusieurs, selon le paramètre de cardinalité dans les propriétés de la couche vectorielle QGIS, l’ajout, la suppression ou l’ouverture d’une entrée dans la liste affecte directement la couche enfant (sur la cardinalité directe) ou la table de liaison (sur une à plusieurs cardinalités).
Le deuxième cas est généralement utilisé lorsqu’il existe des informations de relation supplémentaires (par exemple, un pourcentage) dans la table de liaison.
En cas de cardinalité un à plusieurs sur les relations plusieurs-à-plusieurs, l’expression d’affichage doit être définie sur la table de liaison.
Le type de widget « Fichier joint » est utilisé avec des champs qui contiennent le chemin vers des fichiers.
Il peut être utilisé pour :
Le chemin doit être configuré de manière relative. Les images, PDF ou documents doivent ainsi être placés dans un sous-dossier du projet vers lequel le lien inscrit dans le champ texte redirige.
Dans QField, l’image s’affiche. En cliquant sur le symbole de l’appareil photo, l’appareil photo démarre pour mettre à jour l’image avec une nouvelle photo.
Lors de la synchronisation, le sous-dossier avec les images, PDF ou documents doit également être copié.
L’option « hyperlien » dans le widget « Fichier joint » désactive la fonctionalité de l’appareil photo et permet d’avoir un hyperlien pour ouvrir un document (PDF, doc etc.)
Le widget « Valeur relationnelle » permet d’avoir dans une liste déroulante les valeurs d’une table liée. Vous pouvez selectionner la couche, la clé de la colonne et la valeur de la colonne. Plusieurs options sont disponibles pour changer les paramêtres par défaut : autoriser les valeurs nulles, trier par valeur et autoriser la selection multiple. Le widget affichera une liste déroulante ou un choix multiple des différentes valeurs liées possibles.
Les groupes et onglets venant des formulaires du designer par glisser-déposer sont supportés.
Les groupes peuvent être masqués à partir d’une expression. Cela est utile lorsque certains attributs ne sont requis que sous certaines conditions. Imaginons par exemple une cartographie d’arbres. Certains d’entre eux peuvent avoir une maladie et vous avez une liste des maladies possibles. Pour ne pas encombrer le formulaire avec trop de champs, faites un groupe et paramétrez la visibilité pour un groupe « maladies ». Ajouter un champ « maladies » avec une case à cocher. La liste des maladies sera disponible pour l’utilisateur seulement si la case à cocher est activée.
Voyons ce que nous avons dans l’attribut :
Les champs attributaires peuvent avoir des contraintes rattachées. Les contraintes sont des expressions qui doivent correspondre à True
(or 1
) pour être en mesure d’enregistrer le formulaire. Les contraintes sont configurables champ par champ et une description peut être ajoutée pour être montrée à l’utilisateur si une contrainte n’est pas satisfaite.
Vous ne pouvez saisir une altitude supérieure au plus haut sommet de ce pays.
"elevation" < 5000
Un identifiant est requis dans ce champ.
"identifier" IS NOT NULL
Les champs peuvent avoir des valeurs par défaut configurées. Les valeurs par défaut peuvent être insérées dans le formulaire lors de la numérisation d’une entité. Elles sont visibles pour l’utilisateur et peuvent être modifiées tant que le champ est en mode « édition ». Elles peuvent être basées sur la géométrie ou des combinaison de variables.
For more information regarding storing information related to your position in object attributes, refer to the deticated GNSS documentation.
Insérer l’information de positionnement comme variable :
@position_horizontal_accuracy
Insérer la date et l’heure actuelle :
now()
Insérer la longueur de la ligne numérisée :
length($geometry)
Configurer les variables générales sur l’appareil et les insérer.
@operator_name
Si vous souhaitez assigner à une région un code basé sur le lieu quand une entité est insérée, vous pouvez le faire à l’aide d’expressions d’agrégation :
aggregate( layer:='regions', aggregate:='max', expression:="code", filter:=intersects( $geometry, geometry( @parent ) ) )
Pour transformer les coordonnées reçues de @position_coordinate dans le système de coordonnées de votre projet:
x(transform(@position_coordinate, 'EPSG:4326', @project_crs ))
y(transform(@position_coordinate, 'EPSG:4326', @project_crs ))
If you want to use the snapping results after drawing a line, you can use the @snapping_results variable. The following code extracts the value of the attribute id of the snapping match of the first point of a line.
with_variable(
'first_snapped_point',
array_first( @snapping_results ),
attribute(
get_feature_by_id(
@first_snapped_point['layer'],
@first_snapped_point['feature_id']
),
'id'
)
)
Le flag éditable des attributs est respecté.
QField offre un contrôle fin des dernières valeurs utilisées et ignore la configuration de QGIS.
The “Use completer” checkbox must be checked to be able to use the auto-complete in the value relation.
Here a video showing how it works on QField Search in value list.