Aide sur Filtre comboBox

  • Aide sur Filtre comboBox

    Posté par Jerome sur 25 octobre 2023 at 14h55

    Bonjour à tous,

    Je viens vers vous pour un souci dans le développement de mon application basé sur une liste SP.

    J’ai une comboBox ou je récupère la liste de ma colonne (colSTATUT). Dans Items j’ai ce code qui me remonte bien mes trois statuts (En attente, En cours et Clos)

    //Code du comboBox dans ItemsnDistinct(Demande_statistique.colSTATUT;colSTATUT)

    Dans ma galerie j’ai le code ci-dessous qui filtre l’utilisateur pour remonté que c’est donné enregistré. Les utilisateurs peuvent faire une recherche sur une TextSearchBox1 et j’ai rajouté au dernier mon filtre comboBox et la plus rien ne fonctionne. 😏.

    //Code qui me filtre l'utilisateur, recherche sur TextSearchBox1 et comboBoxnFilter(n    Demande_statistique;n    And(n        StartsWith(n            colMAILDEMANDEUR;n            utilisateurn        );n        Or(n            StartsWith(n                colTITREDEMANDE;n                TextSearchBox1.Textn            );n            StartsWith(n                colNUMERODEMANDE;n                TextSearchBox1.Textn            );n            StartsWith(n                colSTATUT.Value;n                TextSearchBox1.Textn            );n            SortByColumns(Filter(Demande_statistique;IsBlank(ComboBox1.Selected);"Termin_x00e9_";SortOrder.Ascending)n            )n        )n    )n)  

    J’espère que mes explications sont assez claires pour une bonne compréhension du problème.

    Je vous remercie pour l’aide la comu

    Cdt

    Jérôme

    PostID=DUJrgwjUaYUGcBZ

    Jerome a répondu 11 months, 3 weeks ago 1 Membre · 4 Réponses
  • 4 Réponses
  • DavidZed

    Member
    25 octobre 2023 at 17h23

    Hello xbooster ,

    Si ta colonne colSTATUT est une colonne de type choix, tu n’as pas besoin de faire un Distinct() pour récupérer les valeurs (si tu as implémenté les choix possibles dans ta colonne sur SP).

    Tu pourras appeler les valeurs possible grâce à la fonction Choices() :

    Choices(Demande_statistique.colSTATUT)

    ensuite pour ton filtre, il y a un soucis dans le dernier argument, tu as imbriqué un second filtre sur la même source dans un filtre identique, la syntaxe est plus simple :

    //Code qui me filtre l'utilisateur, recherche sur TextSearchBox1 et comboBoxnFilter(n    Demande_statistique;n    And(n        StartsWith(n            colMAILDEMANDEUR;n            utilisateurn        );n        Or(n            StartsWith(n                colTITREDEMANDE;n                TextSearchBox1.Textn            );n            StartsWith(n                colNUMERODEMANDE;n                TextSearchBox1.Textn            );n            StartsWith(n                colSTATUT.Value;n                TextSearchBox1.Textn            );n            colSTATUT.Value = ComboBox1.Selected.Value // true si le statut est sélectionné dans le ComboBoxn            || IsBlank(ComboBox1.Selected) // true si aucun item sélectionné dans le comboboxnn            )n       )n    )n)  

    CommentID=wDOdtKmwvkEgwKZ, PostID=DUJrgwjUaYUGcBZ

    • Jerome

      Member
      27 octobre 2023 at 6h25

      Bonjour DavidZed,

      Merci pour ta réponse

      Oui effectivement dans mon comboBox c’est bien une liste de choix merci pour ce détail 😉

      Par contre pour la deuxième partie ce ne fonctionne pas mon comboBox ne filtre pas ma gallerie quand je change le statut 😔 . Voici un screen quand je séléctionne le statut dans ma comboBox sur les (En cours) et a gauche il me garde mes autres statut.

      Merci pou l’aide 😉

      cdt

      Jérôme

      SubCommentID=MR1WxQ91px09I92, CommentID=wDOdtKmwvkEgwKZ, PostID=DUJrgwjUaYUGcBZ

    • DavidZed

      Member
      27 octobre 2023 at 6h43

      Hello xbooster ,

      Je n’ai pas fait attention mais le cumul de And() et de Or() est trompeur (le test sur le combobox ne doit pas être dans le Or() ), voici une écriture simplifiée :

      //Code qui me filtre l'utilisateur, recherche sur TextSearchBox1 et comboBoxnFilter(n    Demande_statistique;n  n        StartsWith(n            colMAILDEMANDEUR;n            utilisateurn        );n       n            StartsWith(n                colTITREDEMANDE;n                TextSearchBox1.Textn            ) ||n            StartsWith(n                colNUMERODEMANDE;n                TextSearchBox1.Textn            ) ||n            StartsWith(n                colSTATUT.Value;n                TextSearchBox1.Textn            );n            colSTATUT.Value = ComboBox1.Selected.Value // true si le statut est sélectionné dans le ComboBoxn            || IsBlank(ComboBox1.Selected) // true si aucun item sélectionné dans le combobox       n)  

      Au lieu de faire un And(), on profite du fait que la fonction Filter() permet de fournir plusieurs tests logiques : Filter(Source ; Test1 ; Test2; ... ) et on remplace le Or() par des || entre les arguments

      SubCommentID=xsZ7E7lOGY9ByRh, CommentID=wDOdtKmwvkEgwKZ, PostID=DUJrgwjUaYUGcBZ

  • Jerome

    Member
    27 octobre 2023 at 13h23

    Re DavidZed,

    D’accord je comprend mieux les erreurs. Tout fonctionnes super bien maintenant.

    Un grand merci a toi pour ton aide et tes explications qui me permette de mieux comprend mes erreurs. 😉

    CommentID=DnmFL3zjBQ3Wdf9, PostID=DUJrgwjUaYUGcBZ

Connectez-vous pour répondre.