Recherche sous chaine et filtrer

Étiquetté : , , ,

  • Recherche sous chaine et filtrer

    Posté par jean sur 1 septembre 2023 à 10h35

    Bonjour,

    J’ai créé une apps depuis une liste SharePoint, l’objectif est de rechercher et de retourner des résultats selon plusieurs critères écrit par l’utilisateur, mais il y a un critère qui ne fonctionne pas, c’est-à-dire rechercher le numéro d’un département dans une sous chaine écrite sous la forme “10 – 23 – 34 – 90”.

    Ci-dessous le code du champ de recherche :

    SortByColumns(Filter([@'Plans']; StartsWith('Nom (Title)'; TextSearchBox1.Text) || StartsWith('Dept concernés'; TextSearchBox1.Text) || StartsWith('Code O'; TextSearchBox1.Text)|| StartsWith(Exploitant; TextSearchBox1.Text)); "Title"; If(SortDescending1; SortOrder.Descending; SortOrder.Ascending))n

    L’interface :

    La condition qui ne fonctionne pas correctement :

    StartsWith('Dept concernés'; TextSearchBox1.Text)

    La liste de donnée source :

    Merci d’avance si vous avez une piste 😉

    PostID=jpkO8zWUkNg1d4o

    jean a répondu Il y a 11 mois, 3 semaines 1 Membre · 8 Réponses
  • 8 Réponses
  • Geoffroy

    Membre
    1 septembre 2023 à 11h44

    Bonjour Jean

    Et avec TextSearchBox1.Text in ‘Dept concernés’ ?

    Attention, la fonction in n’est pas délégable.

    CommentID=RWTpTBimacK1pyl, PostID=jpkO8zWUkNg1d4o

  • jean

    Membre
    1 septembre 2023 à 12h04

    Bonjour Geoffroy

    ça ne fonctionne pas, je n’ai aucun résultat lorsque je recherche un département et j’ai le message d’avertissement au sujet de la délégation “que je ne comprends pas” (^^)

    CommentID=WMaBl3NiPjZSacd, PostID=jpkO8zWUkNg1d4o

  • jean

    Membre
    1 septembre 2023 à 12h06

    Ci dessous ce que me dit le moniteur :

    CommentID=9Z16UhekwIdtJec, PostID=jpkO8zWUkNg1d4o

  • Geoffroy

    Membre
    1 septembre 2023 à 12h15

    En fait, il faut remplacer toute l’expression StartsWith(‘Dept concernés’; TextSearchBox1.Text) par celle que je t’ai donnée.

    Désolé, je n’ai pas été très clair.

    CommentID=cJ1O3lob6f6YedD, PostID=jpkO8zWUkNg1d4o

  • Geoffroy

    Membre
    1 septembre 2023 à 12h18

    Et pour l’avertissement de délégation, ça signifie que ton appli ne pourra pas gérer plus d’un certain nombre d’enregistrements sur cette fonction. Le nombre maxi se met dans les paramètres de l’appli (500 par défaut, 2000 maximum).

    Donc, ça dépend de la taille de ta liste.

    CommentID=VfYu9q9RXhtMhuA, PostID=jpkO8zWUkNg1d4o

  • DavidZed

    Membre
    1 septembre 2023 à 12h21

    Bonjour,

    Il y a un moyen détourné de parvenir à tes fins avec CountRows et en transformant ta chaine de codes postaux avec Split(), ta formule devrait ressembler à ceci :

    SortByColumns(Filter([@'Plans'];nStartsWith('Nom (Title)'; TextSearchBox1.Text) || nCountRows(Filter(Split(TextSearchBox1.Text; " - "); Value in 'Dept concernés'))>0 || nStartsWith('Code O'; TextSearchBox1.Text)|| StartsWith(Exploitant; TextSearchBox1.Text))n; "Title"; If(SortDescending1; SortOrder.Descending; SortOrder.Ascending))

    A noter que même si cette formule ne déclenche pas d’alerte de délégation, elle ne l’est malheureusement pas pour autant :-/

    CommentID=a9VZYtKtLHFzw82, PostID=jpkO8zWUkNg1d4o

    • Geoffroy

      Membre
      1 septembre 2023 à 12h24

      Ils sont blagueurs chez Microsoft 😄

      SubCommentID=P5wJWWnEJ8g0ZFl, CommentID=a9VZYtKtLHFzw82, PostID=jpkO8zWUkNg1d4o

  • jean

    Membre
    1 septembre 2023 à 13h53

    Merci DavidZed ça marche parfaitement!

    CommentID=joiPVcxXSzi7gtj, PostID=jpkO8zWUkNg1d4o

Connectez-vous pour répondre.