Power Apps : Filter par nom ou par la premiere lettre du nom

Étiquetté : 

  • Power Apps : Filter par nom ou par la premiere lettre du nom

    Posté par Diane Niango sur 14 mars 2023 à 16h59

    Bonjour je voudrais filtrer ma liste d’utilisateur, soit par la barre de recherche soit par les lettres alphabétiques qui affichent les noms qui commencent par la lettre sélectionné.

    Mon problème est que la commande suivante affiche les résultats de la barre de recherche en plus des résultats de la lettre sélectionné. J’ai essayer avec && au lieu || mais il n’affiche que si les deux conditions sont vraies.

    Filter(bdNom;nStartsWith(Title; GallAaZ.Selected.LblLettre.Text) ||n  StartsWith(Title; SearchInput.Text )n)

    J’ai aussi essaye le code suivant mais ici lorsque la barre de recherche n’est pas vide la recherche par lettre ne fonctionne pas

    Filter(bdNom;nIf (IsBlank(SearchInput.Text);nStartsWith(Title; GallAaZ.Selected.LblLettre.Text);n  StartsWith(Title; SearchInput.Text ))n)

    Si quelqu’un peut m’aider Merci

    PostID=OQjCRFDYzhdHxd4

    Diane Niango a répondu Il y a 7 mois, 4 semaines 1 Membre · 4 Réponses
  • 4 Réponses
  • DavidZed

    Membre
    14 mars 2023 à 17h22

    Bonjour,

    Peut-être que l’utilisation d’une variable de contexte résoudrait le problème :

    1. Dans le SearchInput.Onselect : UpdateContext({vctxSearchTXT:Self.Text})

    2. Dans le SearchInput.OnChange : UpdateContext({vctxSearchTXT:Self.Text})

    3. Dans le LblLettre.Onselect : Reset(SearchInput);;UpdateContext({vctxSearchTXT:Self.Text})

    4. Dans la Galerie à filtrer : Filter(bdNom; StartsWith(Title;vctxSearchTXT))

    Le cheminement logique :

    1. Quand on clique sur la lettre “B” dans la GallAaZ, la valeur de la variable passe à “B”

    2. Quand on clique sur SearchInput, qui est vide, la valeur de la variable passe à “”

    3. Quand on saisit “Pierre” dans le SearchInput, la valeur de la variable passe à “Pierre”

    4. Quand on clique sur la lettre “D” dans la GallAaZ, la valeur de la variable passe à “D” et le contenu saisi dans SearchInput est effacé

    CommentID=oXcpKVTednoliwa, PostID=OQjCRFDYzhdHxd4

    • Diane Niango

      Membre
      15 mars 2023 à 9h37

      Coucou DavidZed

      MERCI, je viens d’essayer ta méthode c’est bon ce la fonctionne juste que pour le point 3 “Quand on saisit “Pierre” dans le SearchInput, la valeur de la variable passe à “Pierre”” la liste ne se rafraichi automatique pas il faut d’abord taper “ENTREE”.

      Est ce qu’il est possible de rendre le rafraichissement de la liste des noms automatique?

      SubCommentID=0qoKWyRw2FqAptj, CommentID=oXcpKVTednoliwa, PostID=OQjCRFDYzhdHxd4

  • DavidZed

    Membre
    15 mars 2023 à 9h45

    Dans ce cas, tu peux reprendre ton code :

    Filter(bdNom;nIf (IsBlank(SearchInput.Text);nStartsWith(Title; GallAaZ.Selected.LblLettre.Text);n  StartsWith(Title; SearchInput.Text ))n)

    Et simplement ajouter dans ton LblLettre.Onselect : Reset(SearchInput)

    CommentID=Jw7vlE1IAc4BD2e, PostID=OQjCRFDYzhdHxd4

    • Diane Niango

      Membre
      15 mars 2023 à 10h33

      OK DavidZed

      c’est super! sa fonctionne MERCI encore

      SubCommentID=4KRLNroICI5JweB, CommentID=Jw7vlE1IAc4BD2e, PostID=OQjCRFDYzhdHxd4

Connectez-vous pour répondre.