Affichage dans une Listbox les établissements (colonne Lookup) issu d'un filtre

Étiquetté : , ,

  • Affichage dans une Listbox les établissements (colonne Lookup) issu d'un filtre

    Posté par Philippe CULOT sur 30 janvier 2023 à 16h25

    Bonjour,

    en préambule j’ai regardé le post de R3dKap Filtrer une colonne lookup sur la base d’une autre colonne dans la liste liée, sauf que mon filtre est sur la table qui contient la colonne lookup

    Je dispose de la table Etablissements

    Nom Etablissement est une colonne texte

    La table Users me donne la liste des établissements auxquels accède un user

    Je souhaite que dans une listbox apparaissent les 2 établissements auxquels j’accède

    pour cela je dois filtrer sur le mail de l’utilisateur connecté donc

    Filter(Users;Mail=Lower(gloUser.Email))

    mais dans la propriété items de ma listbox quelle doit être la formule complète pour afficher les 2 établissements souhaités

    Merci d’avance

    PostID=B506ZExFZguurO4

    Philippe CULOT a répondu Il y a 11 mois, 3 semaines 1 Membre · 5 Réponses
  • 5 Réponses
  • DavidZed

    Membre
    30 janvier 2023 à 18h52

    Bonjour,

    Il y a certainement possibilité d’obtenir le résultat avec un

    Distinct(Filter(Users;Mail=gloUser.Email).Etablissement.Value)

    mais le problème est que tu va avoir une liste avec uniquement les valeurs texte de l’établissement.

    Une autre approche consisterait à utiliser :

    First(Filter(GroupBy(Users ; “Mail” ; “GroupedData”);Mail=gloUser.Email)).GroupedData.Etablissement

    C’est un peu laborieux, mais le résultat devrait être une table avec les noms et ID des établissements concernés.

    CommentID=TWdfOwFQP07rDvR, PostID=B506ZExFZguurO4

  • Philippe CULOT

    Membre
    31 janvier 2023 à 9h55

    Bonjour David

    Merci pour tes solutions, cependant sur la solution 2 le Filter ne retourne aucune donnée. J’ai du mettre le nom technique de mon champ Mail pour que j’obtienne un code sans erreur (ou presque )

    Table Users

    Le GroupBy est OK

    mais le Filter ne retourne aucune donnée pourtant Lower(gloUser.Email)=philippe.culot@bpce.fr

    Merci d’avance

    CommentID=yF74cXLZwkPfSxs, PostID=B506ZExFZguurO4

  • Philippe CULOT

    Membre
    31 janvier 2023 à 10h27

    voici le code

    le résultat du first (changement de la double cote en cote simple du scEmailUser

    First(Filter(GroupBy(Users;"scEmailUser";"GroupedData");'scEmailUser'=Lower(gloUser.Email))).GroupedData.Etablissement

    mais le résultat ne s’affiche pas dans la listbox

    CommentID=DpRh0RHXsaqq6u9, PostID=B506ZExFZguurO4

  • R3dKap

    Membre
    31 janvier 2023 à 14h05

    Philippe CULOT essaie avec Lower(scEmailUser) = Lower(gloUser.Email).

    Les quotes simples ne sont nécessaires pour les noms des champs que s’il y a des espaces ou des quotes dans les noms des champs. Donc ici, comme tu utilises le nom technique, pas besoin. Et si tu fais un Lower() d’un côté, faut le faire de l’autre côté aussi (sauf si tu es certains que tout est déjà en minuscule). Sinon il suffira d’une majuscule quelque part pour qu’il ne te ramène rien.

    CommentID=cycZDPVMkRIJgz2, PostID=B506ZExFZguurO4

  • Philippe CULOT

    Membre
    31 janvier 2023 à 14h14

    Bonjour Emmanuel

    Merci pour ces précisions, j’ai réussi à afficher les valeurs dans ma dropdown en déclarant une collection dans le App.OnStart et ensuite dans le item du dropdown en appelant cette collection

    CommentID=iwcqPKLrzLM1cZS, PostID=B506ZExFZguurO4

Connectez-vous pour répondre.