Pour filtrer les choix d’une colonne en fonction d’une autre colonne (ex : afficher les villes d’un département préalablement choisi au lieu de l’ensemble des villes), vous pouvez utiliser le champ « Condition de la liste déroulante », présent dans le panneau de création. Il faudra écrire une formule en utilisant le mot clé choice, pour cibler les options à afficher dans la liste.
Cas simple avec 3 tables :
On a une table de référence, qui sert de référence à la fois dans la table courante et dans la table de la colonne à filtrer. La formule est donc simple :
J’ai une table avec des CRTE qui appartiennent chacun à une région; et une table avec des leviers qui appartiennent chacun à une région. Dans ma table « Projets », pour chaque CRTE, je peux choisir un levier. Je ne veux afficher que les leviers qui correspondent à la région du CRTE. Par exemple, si je suis sur une ligne d’un CRTE d’Occitanie, je ne veux voir dans la colonne « leviers » que la liste des leviers d’occitanie
Rapporter la colonne « Region » de la table « CRTE » dans la table « Projets »
Dans la colonne de référence « leviers », ajouter une formule de condition déroulante : choice.Region == $CRTE_Region
Bonjour
je souhaite adapter ce principe à ma situation mais je bute. Mes deux colonnes sont des références multiples et je voudrais donc que l’ensemble des références me soient proposées dans ma liste de choix. Cela vous parait possible ?
Les conditions de liste déroulante sont moins puissantes que les formules Grist, il n’est par exemple pas possible d’évaluer une Référence ou d’utiliser des noms de tables. Il faut donc transformer les références multiples en choix multiple (formule =$A dans une colonne de type Choix multiple) et ajouter des conditions comme ceci :
"DRV" in choice.Service_Laboratoire_en_choix_multiple or "DRI" in choice.Service_Laboratoire_en_choix_multiple
Bonjour et merci de la proposition.
Hélas, cela ne résout pas mon problème. Ma référence multiple est appelée à évoluer et l’ajout d’une colonne choix multiple fige, si je ne me trompe pas, cette évolution.
Je vais continuer à creuser !
Bonjour @Arnault, est-ce que ces exemples pourraient t’aider ? Sinon, n’hésite-pas à fournir un exemple minimal avec tes structures de tables.
2 réfs multiples
Pour 2 références multiples, on peut faire une formule qui fait l’intersection entre les 2 listes, et retourne la liste des noms de choix possibles, par ex : list(c.choix for p in $Projet.deps for c in Choix.lookupRecords(deps=CONTAINS(p)))
Et ensuite mettre une condition sur liste déroulante de type : choice.choix in $intersection_listes
Dans ce cas il faut ramener la réf multiple de la première colonne dans la table courante (dans l’ex, cette colonne rapportée est projet_dep), puis mettre une condition sur la colonne à filtrer qui va filtrer les choix dont la référence simple est présente dans la liste de références de la colonne précédemment choisie.
Bonjour Aude et merci encore
En partant de ton document, j’ai pu reconstruire ce que je souhaite, voici un lien vers le document (je ne sais pas comment le mettre dans un bac à sable)