Pb syntaxe / plusieurs ClearCollect (App/Onstart)

  • Pb syntaxe / plusieurs ClearCollect (App/Onstart)

    Posté par Mario sur 23 mai 2024 à 22h47

    Bonjour les gens ! Je suis nouveau ici, je viens de découvrir le site. Super idée !

    Bon, j’avoue galérer à comprendre pourquoi la syntaxe des exemples que je trouve ici et la ne fonctionnent pas avec mon environnement Powerapps… Une mise à jour sans doute ?? Pb Fr/US ??

    Bref,

    Je n’arrive pas à mettre 2 ClearCollect dans le “Onstart” de l’opbjet App… Voici ma tentative :

    <div>
    <div>ClearCollect(colCategories; {Value: “All”}; Distinct(‘Catalog-base-test’ ; Category.Value));</div>
    <div>ClearCollect(colPositions; {Value: “All”};Distinct(Positions;Position))</div>
    <div> </div>
    <div>La 1ere ligne seule est OK sans le “;”), mais jamais avec les 2 lignes ensembles… Toujours un souci de syntaxe, jamais la même que tous les exemples que je trouve (y compris via ChatGPT)… </div>
    <div>Une idée SVP ?? Merci d’avance !</div>
    </div>

    Mario a répondu Il y a 4 mois, 3 semaines 3 Membres · 3 Réponses
  • 3 Réponses
  • Geoffroy

    Membre
    23 mai 2024 à 23h51

    Bonjour Mario,

    Dans l’environnement en français, il faut deux points-virgule pour séparer deux instructions distinctes.

  • DavidZed

    Membre
    24 mai 2024 à 8h51

    Hello

    En effet, il faut être super vigilant avec les tutos, les aides sur les forums anglosaxons ou le code généré par Chat-GPT, la majeure partie de la syntaxe est en séparateur décimal “point” (en-US) et non en séparateur décimal “virgule” (fr-FR).

    @Geoffroy t’a donné la bonne réponse en séparateur virgule, on doit faire la conversion :

    Dans les valeurs décimales, pour séparer les unités des chiffres après la virgule :

    , ► .

    Dans les fonctions, pour séparer les arguments :

    , ► ;

    Dans la barre de formules, pour séparer les formules et les éxécuter séquentiellement :

    ; ► ;;

    Pour le besoin qui t’intéresse, je peux te proposer une alternative qui peut t’éviter de passer par des collections :

    Mettre directement dans tes ComboBox :

    Table( {Value: “All”}; Distinct(‘Catalog-base-test’ ; Category.Value))

    et

    Table( {Value: “All”} ; Distinct(Positions;Position) )

    Cela aura pour effet d’ajouter l’élément “All” à la liste des valeurs remontées par ton Distinct(), l’avantage : tu n’auras pas besoin d’actualiser tes collections si une nouvelle valeur apparaît dans ta source

    D’ailleurs pour la première table, s’il s’agit d’une colonne de type choix, tu peux récupérer les valeurs uniques sans passer par un Distinct, avec la fonction Choices() :

    Table( {Value: “All”}; Choices(‘Catalog-base-test’.Category))

  • Mario

    Membre
    24 mai 2024 à 14h22

    “Mouarf” 😁

    Merci en effet c’est OK avec ;; (seule combinaison que j’avais pas testé je pense !)

Connectez-vous pour répondre.