#1 Thu 14 October 2021 11:13
- fabgirstea
- Participant occasionnel
- Date d'inscription: 14 Feb 2018
- Messages: 12
QGIS/Qfield: Contraintes conditionnelles sur formulaire
Bonjour à tous,
Je suis en train de créer un formulaire Pour Qfield à partir de Qgis.
Un champ "visibilite" demande si la placette est visible sur le terrain. Le champs suivant "descr"demande de décrire la placette avec un menu déroulant qui inclut la réponse "sans objet".
Je voudrai que la réponse à "descr" ait une contrainte "not null" et que la valeur par défaut soit "sans objet" si la placette n'est pas visible. Si la placette est visible, je veux que l'utilisateur puisse choisir dans le menu déroulant.
J'ai essayé de m'en sortir avec les valeurs par défaut par expression mais sans succès.
L'expression CASE WHEN "visibilite" Like 'non' THEN 'sans objet' END me renvoie un null si la placette est visible. Donc la réponse ne respecte pas la contrainte "not null" et je peux pas valider mon enregistrement.
Pouvez-vous m'aider?
Bonne journée à vous.
Hors ligne
#2 Thu 14 October 2021 16:57
- Miniopterine
- Participant assidu
- Date d'inscription: 29 Nov 2005
- Messages: 278
Re: QGIS/Qfield: Contraintes conditionnelles sur formulaire
Bonjour,
Pour le moment il me semble que qfield ne gère pas les contraintes non null.
Cordialement,
Hors ligne
#3 Fri 15 October 2021 13:47
- fabgirstea
- Participant occasionnel
- Date d'inscription: 14 Feb 2018
- Messages: 12
Re: QGIS/Qfield: Contraintes conditionnelles sur formulaire
Bonjour, merci pour cette réponse.
Je me demande si je ne vais pas devoir séparer ma table en deux : une première qui renseigne la visibilité de la placette et une seconde qui décrit la placette seulement si elle est visible. Et là je rendrai les réponses obligatoires pour cette table de description puisqu'elle ne contiendra que des placettes visible. Je crois que c'est le plus logique au niveau architecture. Mais il faudra faire une relation entre les tables au sein de Qgis mais cela m'embête un peu car je trouve ces relations difficiles à gérer.
Sinon, j'ai pensé à passer les valeurs de mes menus déroulants de texte à entiers numériques et envoyer une expression du genre :
Case
when "visibilite"='non' then "descr"= 0 [0 étant la valeur "sans objet]
when "visibilite"='oui' then "descr">0 and "descr"<10 [mes valeurs de description iraient de 1 à 9]
end
Est-ce que quelqu'un a un avis sur ces méthodes?
Merci
Hors ligne
#4 Mon 08 November 2021 18:13
- fabgirstea
- Participant occasionnel
- Date d'inscription: 14 Feb 2018
- Messages: 12
Re: QGIS/Qfield: Contraintes conditionnelles sur formulaire
Bonjour,
malheureusement mon post n'a pas eu beaucoup de réponses c'est sans doute que la question est mal formulée.
Pour information, ce que je veux faire s'appelle du "live update value" dans la documentation de qfield.
J'ai testé ma formule avec les CASE. Sur Qgis ça fonctionne assez bien. Mais Qfield ne le prenait pas en charge. Je me suis débrouillé avec une valeur relationnelle (obligé d'établir une relation dans le projet Qgis mais elle disparaît quand je modifie les tables..).
Par contre, la dernière version de Qfield est censée prendre en charge justement le "live update value". J'en donnerai des nouvelles quand je l'aurai testée si ça intéresse des gens.
Est-ce que les questions sur Qfield doivent être posée à une emplacement spécifique? (parce que j'en ai encore )
Bonne soirée à tous.
Hors ligne
#5 Fri 12 November 2021 12:15
- Miniopterine
- Participant assidu
- Date d'inscription: 29 Nov 2005
- Messages: 278
Re: QGIS/Qfield: Contraintes conditionnelles sur formulaire
Bonjour,
Si tu gardes tout dans la même table, tu peux utiliser dans le formulaire l'option "Contrôler la visibilité par expression" , donc si visibiltié = oui alors le champ descr apparait sinon, non. Mais ca ne le rend pas obligatoire...
Il y a aussi quelques postes Qfield dans la rubrique Geolibre
Cordialement,
Hors ligne