#1 Sat 17 November 2018 17:00
- preliator
- Participant assidu
- Date d'inscription: 17 Nov 2018
- Messages: 433
QGIS: Champ Conditionnel ?
Bonjour à tous,
Je me demandais s'il était possible de créer un champ qui "apparait" ou qui puisse être édité de manière conditionnelle.
Par exemple, un champs "Dimension Fenetre" qui apparaît seulement si le champs précédent "Presence fenetre" est coché.
Merci à vous.
Hors ligne
#2 Mon 19 November 2018 09:50
- chanteclair
- Participant assidu
- Lieu: Pau
- Date d'inscription: 3 Jan 2007
- Messages: 725
Re: QGIS: Champ Conditionnel ?
Bonjour,
C'est possible.
Dans les propriétés de la couche, dans la section "champs", créer un formulaire par glisser-déposer et faites des conditions de type "CASE WHEN... THEN... END" pour qu'en fonction de votre champ de départ, les suivants apparaissent ou non.
https://docs.qgis.org/2.18/fr/docs/user … properties
Bonne journée.
Hors ligne
#3 Mon 19 November 2018 10:39
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4785
Re: QGIS: Champ Conditionnel ?
Hello
SVP ce serait SYMPA d'indiquer sur les forums concernes que tu fais des POSTs multiples !?
http://www.forumsig.org/showthread.php/ … nditionnel
https://georezo.net/forum/viewtopic.php?id=113228
Merci d'avance, GeoBye, Pat
(Autodesk Expert Elite Team)
Hors ligne
#4 Fri 23 November 2018 17:40
- preliator
- Participant assidu
- Date d'inscription: 17 Nov 2018
- Messages: 433
Re: QGIS: Champ Conditionnel ?
Bonjour,
C'est possible.
Dans les propriétés de la couche, dans la section "champs", créer un formulaire par glisser-déposer et faites des conditions de type "CASE WHEN... THEN... END" pour qu'en fonction de votre champ de départ, les suivants apparaissent ou non.
https://docs.qgis.org/2.18/fr/docs/user … properties
Bonne journée.
Merci pour votre réponse. Pourriez vous juste me préciser la démarche à faire ? Je suis hélas qu'un débutant ^^' C'est un formulaire qu'il faut créer ?
Dernière modification par preliator (Fri 23 November 2018 17:42)
Hors ligne
#5 Mon 26 November 2018 09:08
- chanteclair
- Participant assidu
- Lieu: Pau
- Date d'inscription: 3 Jan 2007
- Messages: 725
Re: QGIS: Champ Conditionnel ?
Bonjour,
Oui il faut créer un formulaire et dans les différents onglets ou groupes créés, vous allez définir vos conditions.
http://image.noelshack.com/fichiers/201 … 6-case.jpg
Hors ligne
#6 Mon 26 November 2018 10:39
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3920
Re: QGIS: Champ Conditionnel ?
Bonjour,
Le lien pour les formulaires est plutôt https://docs.qgis.org/2.18/fr/docs/user … -your-data
Un peu hors-sujet?: @chanteclair est-ce que un
Code:
case when "sport"='Rafting' then 1 end
marche? Je ne comprends pas bien l'esprit de l'expression proposée. La visibilité se faisant sur l'item sélectionné, il me semble que l'expression attend un non/oui ou un 0/1, pas la liste des sous-items. Si? Cela dit, ton expression marchera car il renvoie la liste des champs donc du texte non nul.
Hors ligne
#7 Mon 26 November 2018 11:03
- chanteclair
- Participant assidu
- Lieu: Pau
- Date d'inscription: 3 Jan 2007
- Messages: 725
Re: QGIS: Champ Conditionnel ?
@Santanna, j'ai mis une capture d'un projet en cours qui, dans l'esprit, se rapproche de ce que veut faire preliator.
Pour ma part, mon besoin est d'afficher dans mon formulaire les champs correspondant au sport choisi parmi une table de plusieurs dizaines.
Pour le lien, c'est bien la même page mais pas au même endroit.
Hors ligne
#8 Mon 26 November 2018 11:37
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3920
Re: QGIS: Champ Conditionnel ?
@Santanna, j'ai mis une capture d'un projet en cours qui, dans l'esprit, se rapproche de ce que veut faire preliator.
Si tu fais référence à
Un peu hors-sujet?
, cette partie de mon message concernait mes propos qui allaient suivre plutôt que l'exemple que tu fournissais, en ce sens que je ne répondais pas directement à la question de preliator mais abordais des points (de détail?) sur la formule que t'utilisais. Je ne sous-entendais pas que ta réponse est hors sujet. Désolé s'il y a eu méprise.
Pour ma part, mon besoin est d'afficher dans mon formulaire les champs correspondant au sport choisi parmi une table de plusieurs dizaines.
Oui, j'avais bien compris cela. Mon propos est, peu importe les champs que tu veux afficher, s'ils sont des sous-items de Rafting, sa visibilité les impacte et qu'à mon avis, l'expression suggérée plus haut serait plus simple/optimale.
En allant plus loin dans la réflexion, plutôt que de faire autant de conteneurs que de disciplines, je pense que l'idéal serait de pouvoir conditionner l'affichage de chaque champ directement mais je n'ai pas vu l'option (Requête de fonctionnalités?). Ca éviterait de dupliquer les conteneurs. Là encore, je me hors-sujettise. Sorry!
Hors ligne
#9 Mon 26 November 2018 14:06
- chanteclair
- Participant assidu
- Lieu: Pau
- Date d'inscription: 3 Jan 2007
- Messages: 725
Re: QGIS: Champ Conditionnel ?
@santanna : aucun souci !
plutôt que de faire autant de conteneurs que de disciplines, je pense que l'idéal serait de pouvoir conditionner l'affichage de chaque champ directement mais je n'ai pas vu l'option (Requête de fonctionnalités?). Ca éviterait de dupliquer les conteneurs.
J'ai fait ce test un peu "à l'arrache" et c'est vrai que reproduire les conteneurs est fastidieux. Mais ça répond à la demande. Quand j'aurai un peu de temps, j'essaierai de creuser un peu plus.
Hors ligne
#10 Wed 28 November 2018 09:03
- preliator
- Participant assidu
- Date d'inscription: 17 Nov 2018
- Messages: 433
Re: QGIS: Champ Conditionnel ?
Merci beaucoup pour vos réponses qui m'aident beaucoup. Je vais déjà essayer avec ces éléments
Hors ligne
#11 Tue 12 February 2019 14:34
- AHAquilex
- Participant occasionnel
- Date d'inscription: 10 Jul 2018
- Messages: 17
Re: QGIS: Champ Conditionnel ?
Bonjour,
Je suis tombé sur ce sujet qui correspond tout à fait à mon besoin, seulement sous Qgis3.4 il me semble qu'il n'y a plus cette option de contrôle de visibilité par expression, comme le montrait cette image :
http://image.noelshack.com/fichiers/201 … 6-case.jpg
Y a-t-il une autre solution pour afficher un groupe en fonction de la valeur d'un champ ?
Merci d'avance.
EDIT : OK, ma faute : il suffit de faire un DOUBLE CLIC (droite ou gauche) sur le groupe dans la liste "Disposition du formulaire" pour afficher la configuration du conteneur. C'était tout de même pas intuitif. Du coup j'ai répondu tout seul^^
Dernière modification par AHAquilex (Tue 12 February 2019 14:45)
Hors ligne
#12 Tue 12 February 2019 15:56
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3920
Re: QGIS: Champ Conditionnel ?
Bonjour,
EDIT : OK, ma faute : il suffit de faire un DOUBLE CLIC (droite ou gauche) sur le groupe dans la liste "Disposition du formulaire" pour afficher la configuration du conteneur. C'était tout de même pas intuitif. Du coup j'ai répondu tout seul^^
Merci du retour. Pour le côté non intuitif, une idée de quelque chose qui pourrait être mieux? Où auriez-vous espéré trouver l'option?
Hors ligne
#13 Tue 12 February 2019 16:25
- preliator
- Participant assidu
- Date d'inscription: 17 Nov 2018
- Messages: 433
Re: QGIS: Champ Conditionnel ?
Une idée de comment faire sur QGis 2.18 ?
Hors ligne
#14 Tue 12 February 2019 16:39
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3920
Re: QGIS: Champ Conditionnel ?
Une idée de comment faire sur QGis 2.18 ?
EDIT : OK, ma faute : il suffit de faire un DOUBLE CLIC (droite ou gauche) sur le groupe dans la liste "Disposition du formulaire" pour afficher la configuration du conteneur.
ou voir la doc
Hors ligne
#15 Tue 12 February 2019 16:53
- AHAquilex
- Participant occasionnel
- Date d'inscription: 10 Jul 2018
- Messages: 17
Re: QGIS: Champ Conditionnel ?
preliator a écrit :
Une idée de comment faire sur QGis 2.18 ?
Parce qu'une image vaut mille mots :
[img]https://image.noelshack.com/minis/2019/07/2/1549986587-formulaire-qgis-champ-optionnel.png[/img]
@SANTANNA
Comme un idiot, habitué à windows, pour ouvrir les propriétés du groupe je pensais qu'un simple "clic droit > propriétés" suffirait. Sinon je pense que ça serait utile (et plus visible) d'afficher cette boîte de dialogue au même endroit que les informations de la couche (colonne de droite sur l'image ci-dessus) puisque cette colonne est normalement vide si on ne sélectionne pas de couche.
Idem pour la petite boîte de dialogue qui s'ouvre en double-cliquant sur une couche (et qui ne contient pas grand chose : seulement une case à cocher "show label").
Bien à vous
Hors ligne
#16 Tue 12 February 2019 17:09
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3920
Re: QGIS: Champ Conditionnel ?
@AHAquilex, Pourquoi pas, en effet. Par contre, à l'heure actuelle, la colonne à droite affiche les propriétés de ce qui est sélectionné à gauche (pas du tout intuitif à mon avis) et non ce qui est sélectionné au centre (ou ce qui est actif, que ce soit au centre ou à gauche). et les objets en question sont au centre.
Cela dit, vous pouvez suggérer votre approche à https://issues.qgis.org (voir https://qgis.org/fr/site/getinvolved/de … and-issues pour la procédure)
Hors ligne
#17 Tue 12 February 2019 19:14
- AHAquilex
- Participant occasionnel
- Date d'inscription: 10 Jul 2018
- Messages: 17
Re: QGIS: Champ Conditionnel ?
J'ai créé un ticket en relation (après avoir longuement vérifié, avec mon niveau d'anglais absolument formidable, que le problème n'avait pas été déjà posé). On verra bien ce que ça va devenir.
En tous cas merci à tous pour votre intérêt, vos réponses et vos remarques.
Hors ligne
#19 Wed 13 February 2019 09:08
- AHAquilex
- Participant occasionnel
- Date d'inscription: 10 Jul 2018
- Messages: 17
Re: QGIS: Champ Conditionnel ?
Hors ligne
#20 Wed 13 February 2019 09:55
- preliator
- Participant assidu
- Date d'inscription: 17 Nov 2018
- Messages: 433
Re: QGIS: Champ Conditionnel ?
Merci à vous, maintenant je sais créer des formulaires
Cependant il me reste un dernier truc à comprendre, avec les boites à cocher. J'arrive à faire apparaitre/disparaitre des groupes avec la formule de condition ""Boite à cocher" = 1" seulement si l'état coché/décoché de la boite est 1 ou 0. Si je remplace ces 1 ou 0 par autre chose (par exemple "Presence" ou "Absence"), je n'arrive plus à faire apparaître mon groupe.
Mettre 1 ou 0 en état coché/décoché est-elle la seule condition pour pouvoir afficher/cacher des groupes ?
Hors ligne
#21 Wed 13 February 2019 12:33
- AHAquilex
- Participant occasionnel
- Date d'inscription: 10 Jul 2018
- Messages: 17
Re: QGIS: Champ Conditionnel ?
Je vois c'est quoi le problème :
https://www.casimages.com/i/190213123308360561.png.html
J'ai fait un exemple rapide avec une couche points, contenant les champs "id", "Présence" et "Identité"
Dans le formulaire j'ai le champ "Identité" dans un groupe que je veux afficher seulement si le champ "Présence" est coché (='présence').
Pour ça il faut écrire présence et absence dans les cases "Représentation d'un état coché/décoché" sans les apostrophes.
Et pour l'expression de visibilité tu écris : "Présence" = 'présence'
Si tu veux mettre une valeur par défaut (par exemple coché par défaut, ou décoché), il faut écrire 'présence' ou 'absence' dans la case correspondante (attention : sur l'image je n'ai pas mis d'apostrophes, c'est une erreur)
Hors ligne
#22 Thu 19 November 2020 16:41
- Samuel Pereira Dias
- Participant actif
- Date d'inscription: 11 May 2015
- Messages: 53
Re: QGIS: Champ Conditionnel ?
Bonjour à tous,
Je réactive ce post pas très vieux non plus, surtout qu'il s'agit aussi d'une interrogation sur du 3+ de Qgis
Grâce à vos échanges j'ai déjà réussi à faire progresser mon formulaire, notamment lorsque 1 ou 0 est coché, mais j'aimerais aller plus loin
@AHAquilex
a décrit comment faire lorsque l'opérateur booléen définit la case à cocher n'était pas '1' ou '0', mais du caractère tel que 'présence'.
J'aimerais effectuer la même expression conditionnel mais sur une question de type 'liste de valeur'.
C'est à dire que ma question apparaissent si ='Autres', et seulement 'Autres' car j'aurais le choix avec 'a', 'b', 'c', etc etc...
Avec mes balbutiement en SQL j'ai seulement réussi à faire apparaitre ma question pour toutes les valeurs possible et pas seulement 'Autres'.
On dirait donc que CASE WHEN "Typ_travaux" THEN "Autres" END n'est pas suffisant.
Puis dernière question, cette expression doit obligatoirement se faire via un conteneur? Cette visibilité n'est pas paramétrable directement sur le champ?
Puis tant que j'y suis, quel url pour apprendre 'a coder' sur Qgis? (Mis à part les sites doc de qgis que j'ai toujours trouver moins informatif que ce que j'ai trouvé ici )
Merci!!!
S.
Dernière modification par Samuel Pereira Dias (Fri 20 November 2020 15:46)
Hors ligne