Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Wed 18 May 2022 09:59

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1624

QGIS: Menu deroulant sous conditions

Bonjour,

Je souhaite mettre des menus déroulants dont les listes de valeurs seront proposées sous conditions.
Cas des arbres :
Type d'essences proposées dans un menu déroulant :
- Feuillus
- Résineux

Dans les Feuillus, il y a comme type d'arbres des  Bouleaux et Chataigniers
Dans les Résineux, il y a comme type d'arbres des Sapins et Epicéas

Si je saisis Feuillus dans le menu déroulant, il faudrait que, dans un second menu déroulant 'type d'arbres', soit proposé uniquement Bouleaux et Chataigniers, et non l'ensemble des types arbres (Bouleaux, Chataigniers, Sapins et Epicéas).
Comment faire?
Merci.

Hors ligne

 

#2 Wed 18 May 2022 11:37

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1624

Re: QGIS: Menu deroulant sous conditions

Je verrais bien une expression de type

case when  "Essence" = 'Feuillu' then  "Type" = "Bouleau" or "Chataigner" end


Je l'ai placée dans les expressions de contrainte dans le formulaire d'attributs. Mais sans résultat, c'est-à-dire que tous les types arbres (Bouleaux, Chataigniers, Sapins et Epicéas) s'affichent dans le menu déroulant.

Hors ligne

 

#3 Wed 18 May 2022 12:01

Miniopterine
Participant assidu
Date d'inscription: 29 Nov 2005
Messages: 276

Re: QGIS: Menu deroulant sous conditions

Bonjour,

Le mieux serait peut-etre de passer par un csv avec une colonne  famille et une colonne espece. Vous auriez ainsi une 1ere liste de valeurs relationnelles  "famille", puis une 2eme espece avec un filtre "famille"=current_value("famille")

Cordialement,

Hors ligne

 

#4 Wed 18 May 2022 12:37

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1624

Re: QGIS: Menu deroulant sous conditions

C'est-à-dire, dans le champ "essence" je charge les données depuis un fichier csv?
De même dans le champ "types d'arbres" avec ce même fichier csv?
Si oui où inscrit-on le filtre "famille"=current_value("famille")?

Merci.

Hors ligne

 

#5 Wed 18 May 2022 13:05

Miniopterine
Participant assidu
Date d'inscription: 29 Nov 2005
Messages: 276

Re: QGIS: Menu deroulant sous conditions

Oui un tableau de correspondance entre essence et type d'arbre. De mon coté, je ne sais pas si c'était nécessaire mais j'ai un csv avec la liste (unique) des familles et un autre csv avec les correspondances familles-espece.
J'ai donc une liste de valeurs relationnelles qui pointe vers le csv famille et une 2eme liste espece qui pointe vers le csv famille_espece
Dans le formulaire, tu choisis le widget valeur relationnelle et dans filtre expression du widget tu utilises le current_value

Hors ligne

 

#6 Wed 18 May 2022 14:50

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1624

Re: QGIS: Menu deroulant sous conditions

Ce que j'ai fait :

Rappel :
J'ai donc une couche "Arbres" (vide). J'ai deux champs
- "Essence" dans lequel on saisira les essences (feuillus, résineux, fruitier ou divers) au moyen d'un menu déroulant
- "Type" : dans lequel on saisira les différents arbres  au moyen d'un menu déroulant

2  csv
- un csv 'essence' pour répertorier les essences
- un csv 'correspondance' pour la correspondance entre les essences et les arbres.

Dans la couche "Arbres" --> Formulaire d'attributs :
- Champ "Essence" --> valeur relationnelle sur le .csv "Essence"
- Champ "Type"-->  valeur relationnelle sur le .csv "Correspondance", colonne clé "essence", colonne de valeurs "arbre"

Jusqu'ici tout va bien?

Hors ligne

 

#7 Wed 18 May 2022 14:59

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1624

Re: QGIS: Menu deroulant sous conditions

J'ai complètement oublié de préciser que cela a pour but d'être utilisé sous Qfield.
Ces menus déroulants sous valeurs relationnelles fonctionneraient sous Qfield?

Hors ligne

 

#8 Wed 18 May 2022 16:39

Miniopterine
Participant assidu
Date d'inscription: 29 Nov 2005
Messages: 276

Re: QGIS: Menu deroulant sous conditions

oui ca fonctionne sur qfield

Hors ligne

 

#9 Wed 18 May 2022 16:43

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1624

Re: QGIS: Menu deroulant sous conditions

Ce que j'ai fait :

Rappel :
J'ai donc une couche "Arbres" (vide). J'ai deux champs
- "Essence" dans lequel on saisira les essences (feuillus, résineux, fruitier ou divers) au moyen d'un menu déroulant
- "Type" : dans lequel on saisira les différents arbres  au moyen d'un menu déroulant

2  csv
- un csv 'essence' pour répertorier les essences
- un csv 'correspondance' pour la correspondance entre les essences et les arbres.

Dans la couche "Arbres" --> Formulaire d'attributs :
- Champ "Essence" --> valeur relationnelle sur le .csv "Essence"
- Champ "Type"-->  valeur relationnelle sur le .csv "Correspondance", colonne clé "essence", colonne de valeurs "arbre"


Et ce que j'ai fait c'est bon pour l'instant?

Hors ligne

 

#10 Wed 18 May 2022 16:47

Miniopterine
Participant assidu
Date d'inscription: 29 Nov 2005
Messages: 276

Re: QGIS: Menu deroulant sous conditions

ca a l'air ok, il faut testé... sans oublié le filtre avec current_value

Hors ligne

 

#11 Wed 18 May 2022 17:01

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1624

Re: QGIS: Menu deroulant sous conditions

Cela ne fonctionne pas, il y a toujours l'ensemble des arbres proposé dans "Type".
Peut-être que current_value ne fonctionne pas :
Voici l'expression du filtre dans la valeur relationnelle du champ "Type" :

"Type"=current_value("Essence")


De plus, le fait que la base de données de la couche "Arbres" soit vide porte-t-il préjudice à ce menu déroulant?

Hors ligne

 

#12 Wed 18 May 2022 17:12

Miniopterine
Participant assidu
Date d'inscription: 29 Nov 2005
Messages: 276

Re: QGIS: Menu deroulant sous conditions

Il faut jouer sur els champs clé et valeur.
Pouvez-vous mettre en pj vos 2 csv et votre shape (avec le qml) svp?

Hors ligne

 

#13 Wed 18 May 2022 17:31

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1624

Re: QGIS: Menu deroulant sous conditions

le voici.


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#14 Wed 18 May 2022 18:43

Miniopterine
Participant assidu
Date d'inscription: 29 Nov 2005
Messages: 276

Re: QGIS: Menu deroulant sous conditions

Alors j'ai réussi en mettant:
Essence: valeur relationnelle - Couche "Essence", colonne clé essence et colonne de valeurs essence
Type: valeur relationnelle - Couche "Correspondance", colonne clé Type et colonne de valeurs Type et filtre "Essence"=current_value('Essence')

Hors ligne

 

#15 Wed 18 May 2022 19:18

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1624

Re: QGIS: Menu deroulant sous conditions

ok super ça fonctionne merci beaucoup

Hors ligne

 

#16 Wed 18 May 2022 19:58

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1624

Re: QGIS: Menu deroulant sous conditions

Vous avez dû voir qu'il y a un champ H_ététage et un champ entretien.
Ce champ entretien comporte trois valeurs dans le menu déroulant : coupe, élagage et ététage.
Si on choisit la valeur ététage dans le champ entretien alors il faut mettre la hauteur dans le champ H_ététage.
Ce que je voudrais, c'est qu'il ne soit pas possible de rentrer une hauteur dans le champ H_ététage lorsque la valeur ététage dans le champ entretien n'est pas choisie.
Est-ce possible?
Merci.

Hors ligne

 

#17 Wed 18 May 2022 20:26

Miniopterine
Participant assidu
Date d'inscription: 29 Nov 2005
Messages: 276

Re: QGIS: Menu deroulant sous conditions

Je pense que c'est possible soit en rendant le champ entretien obligatoire, soit en rajoutant une contrainte "Expression" dans les propriétés du champ H_etetage genre Case when "entretien" is null then...

Hors ligne

 

#18 Wed 18 May 2022 20:38

Miniopterine
Participant assidu
Date d'inscription: 29 Nov 2005
Messages: 276

Re: QGIS: Menu deroulant sous conditions

Ca marche avec une expression dans le champ H_etetage" genre


Code:

case when   "Entretien"  ='Etétage'
then not  ( "H_ététag" is null) else "H_ététag"  is null or "H_ététag" is not null
END

et il faut cocher la case "Renforcer la contrainte par expression"

Dernière modification par Miniopterine (Wed 18 May 2022 20:50)

Hors ligne

 

#19 Thu 19 May 2022 09:25

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1624

Re: QGIS: Menu deroulant sous conditions

Bonjour,

Votre expression ne donne pas de résultat : quelque soit la valeur choisie dans le champ entretien, on peut toujours saisir une hauteur dans le champ H_ététag.
J'ai modifié l'expression :

case when   "Entretien"  ='Etétage'
then not  ( "H_ététag" is null) else "H_ététag"  is null
END


Et là cela fonctionne :
- Valeurs Coupe et Elagage choisies --> pas de saisie de hauteur possible dans le champ H_ététag
- Valeur Etétag choisie -->  saisie de hauteur possible dans le champ H_ététag
-

Hors ligne

 

#20 Thu 19 May 2022 09:42

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1624

Re: QGIS: Menu deroulant sous conditions

La valeur relationnelle fonctionne et je vous en remercie. J'ai une demande particulière concernant les arbres non répertoriés.
Je rappelle que pour chaque essence, il y a un menu déroulant dans le champ "Type" qui s'adapte.
Dans le champ essence, voici les valeurs possibles :
"Feuillus"
"Résineux"
"Fruitier"
"Divers"

Il m'est demande de rajouter une valeur "Autre" pour mettre des arbres non répertoriés dans le champ "Type". Seulement voilà, il s'agit de saisir manuellement dans ce cas-là des arbres non répertoriés, qui n'appartiennent à aucune des catégories.
Comment faire :
- pour garder la fonction Menu déroulant dans le champ "Type" lorsque dans le champ essence est choisi soit "Feuillus" soit "Résineux" soit "Fruitier" soit "Divers" et
- se mettre en mode saisie dans le champ "Type" lorsque dans le champ essence est choisi "Autre"

Est-ce possible?
Merci.

Hors ligne

 

#21 Thu 19 May 2022 11:42

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1624

Re: QGIS: Menu deroulant sous conditions

Par contre je viens de voir que l'expression

case when   "Entretien"  ='Etétage'
then not  ( "H_ététag" is null) else "H_ététag"  is null
END


fonctionne en mode création de point.
Mais si je veux modifier par la suite la hauteur, je peux le faire quelle que soit la valeur de l'entretien choisie.

Hors ligne

 

Pied de page des forums

Powered by FluxBB