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é ?

#1 Sat 16 September 2023 07:08

Pascal1968
Participant occasionnel
Date d'inscription: 21 Aug 2023
Messages: 10

QGIS: Champs de listes deroulantes inter-dependantes

Bonjour à toutes et tous,

Encore une petite question sur la gestion des listes déroulantes.
Est-il possible de rendre deux champs, contenant chacun une liste déroulante, inter-dépendants ?

Je m'explique.

Je possède une table (fichier csv) nommée "offnamefrnl" (qui reprend les noms des rues en français et en néerlandais) composée de la manière suivante:
1 champ "id" numérique (simplement 1, 2, 3, ...)
1 champ "offnamefrcsv" (chaîne de caractères) qui reprend les noms de rue en français
1 champ "offnamenlcsv" (chaîne de caractères) qui reprend les noms de rue en néerlandais

Dans ma couche de travail, j'ai deux champs:
1 champ "offnamefr" qui reprend sous forme de liste déroulante les valeurs de la colonne 'offnamefrcsv'.
Type d'outil: Valeur relationnelle
Couche: offnamefrnl
Colonne clé: id
Colonne de valeurs : offnamefrcsv

1 champ "offnamenl" qui reprend sous forme de liste déroulante les valeurs de la colonne 'offnamenlcsv'.
Type d'outil: Valeur relationnelle
Couche: offnamefrnl
Colonne clé: id
Colonne de valeurs : offnamenlcsv

Le but, pour pouvoir permettre un encodage facile des données que l'on soit francophone ou néerlandophone, est de pouvoir sélectionner le nom de la rue dans sa propre langue et que le champ de l'autre langue se remplisse automatiquement.
Si l'on sélectionne via le champ en français ("offnamefr"), par exemple, il est aisé de placer l'expression "id"  = current_value('offnamefr') dans le filtre de l'expression du champ "offnamenl". Le nom en néerlandais se remplit automatiquement.
Mais... Etant donné que le filtre est sur le champ en néerlandais, le système ne fonctionne que dans un seul sens (FR => NL).
Et bien sûr, placer l'expression équivalente dans le champ "offnamefr" ne fonctionne. Les deux champs français et néerlandais attendant chacun que l'autre soit rempli pour renvoyer la correspondance.

Existe t-il une possibilité de rendre ces deux champs inter-dépendants et donc de passer d'une liste à l'autre pour obtenir les correspondances ?

Dernière modification par Pascal1968 (Sat 16 September 2023 07:09)

Hors ligne

 

#2 Sat 16 September 2023 12:33

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 425

Re: QGIS: Champs de listes deroulantes inter-dependantes

Bonjour,

Comme tu as utilisé des champs de type Valeur relationnelle, ce sont les id de ta table offnamefrnl qui sont enregistrés dans ta couche de travail et non les valeurs en français ou en néerlandais.

Par conséquent, les deux champs doivent avoir la même valeur, le même id.
Plutôt que de jouer sur l'expression de filtre, tu peux jouer avec la valeur par défaut, en cochant bien "Appliquer la valeur par défaut sur la mise à jour".
Tu peux utiliser simplement la référence à l'autre champ :
- offnamefr comme valeur par défaut pour le champ offnamenl
- offnamenl comme valeur par défaut pour le champ offnamefr

J'ai testé et ça fonctionne comme tu le souhaites.

Hors ligne

 

#3 Sat 16 September 2023 17:23

Pascal1968
Participant occasionnel
Date d'inscription: 21 Aug 2023
Messages: 10

Re: QGIS: Champs de listes deroulantes inter-dependantes

Bonjour Jeremie,

Effectivement. Je me suis cassé la tête pour rien en pensant la table de façon simple et en compliquant les relations entre champs :-)

Par hasard, existe t-il une possibilité de limiter la hauteur (nombre de lignes affichées) d'une liste déroulante ? Ici, toute la liste est affichée en une seule fois au lieu d'afficher un certain nombre limité de lignes avec un ascenseur. Pas très pratique.

Merci infiniment pour ton aide !

Hors ligne

 

Pied de page des forums

Powered by FluxBB