Filtre Search() sur des valeurs

  • Filtre Search() sur des valeurs

    Posté par Sylvain sur 20 décembre 2022 à 4h10

    Hello !!!

    Au niveau d’une galerie, j’ai appliquer un Search() sur ma source sur 2 colonnes texte de ma liste SharePoint qui prend l’info dans une Textbox

    Search(maListe; monTextBox.Text; "colonne1"; "colonne2")

    Jusque là, aucun problème.

    Là où ça ce complique, c’est que dans ma liste, j’ai une troisième colonne (on va l’appeler colonne3 😉 ) de type recherche (vers une autre liste SharePoint) et que l’aimerai l’inclure dans mes colonnes de recherche en tapant une chaîne de caractères, toujours dans mon Textbox.

    J’ai donc essayé :

    Search(maListe; monTextBox.Text; "colonne1"; "colonne2"; "colonne3")

    mais bien sûr, ça ne marche pas car on recherche une chaîne de caractère et ma colonne3 est de type Valeur. J’ai essayé Text(“colonne3”) mais ça ne marche pas…

    une idée ?

    Merci d’avance.

    Sylvain

    PostID=nsOotVeyUTGOmCm

    Sylvain a répondu Il y a 7 mois, 3 semaines 1 Membre · 3 Réponses
  • 3 Réponses
  • DavidZed

    Membre
    20 décembre 2022 à 8h18

    Hello Sylvain ,

    Effectivement, cela ne va pas fonctionner car Search() ne fonctionne que sur des valeurs de type texte, or une colonne de recherche / lookup va contenir un enregistrement du type {ID:23,Value:”TitreDeItem”}.

    Tu peux remplacer ton search par un Filter() avec “in” :

    Filter(maliste;monTextBox.Text in 'Colonne 1' || monTextBox.Text in 'Colonne 2' || monTextBox.Text in 'Colonne 3'.Value)

    Ou Colonne 3 est ta colonne de type recherche. Attention, cette fonction est non délégable, à réserver pour des listes avec moins de 2000 éléments (idéalement moins de 500).

    Si ta liste est plus grande, il faudra trouver une autre solution pour le filtrage

    CommentID=BOFqvqebuDmw6cY, PostID=nsOotVeyUTGOmCm

  • R3dKap

    Membre
    20 décembre 2022 à 9h10

    Sylvain sinon tu peux aussi rajouter une colonne à ta source de données pour y mettre le Value de ta colonne de recherche :

    Search(AddColumns(maListe; "ValueColonne3"; Colonne3.Value); monTextBox.Text; "colonne1"; "colonne2"; "ValueColonne3")

    Mais attention, le AddColumns() ne fonctionnera que sur les 2000 premiers éléments de ta liste…

    Si tu veux aller au-delà des 2000, pas le choix : faut que tu crées une nouvelle colonne ValueColonne3 directement dans ta liste SharePoint et que tu l’alimentes avec Colonne3.Value à chaque fois que tu crées ou met à jour un item de ta liste. Tu pourras alors faire un Search() sur cette colonne ValueColonne3 sans limitations.

    CommentID=pWjx9tXar7m22tR, PostID=nsOotVeyUTGOmCm

  • Sylvain

    Membre
    20 décembre 2022 à 20h27

    Hello, super, merci à tous les deux. Je vais essayer ça

    a+

    CommentID=hcf5QmPuFgbKrXC, PostID=nsOotVeyUTGOmCm

Connectez-vous pour répondre.