Créer des fonctions réutilisables dans Power Apps

Étiquetté : , ,

  • Créer des fonctions réutilisables dans Power Apps

    Posté par R3dKap sur 24 mars 2022 à 16h04

    Je reporte ici une réponse que j’avais faite dans un post pour que tout le monde puisse en profiter… 😉

    Pour faire des “fonctions” dans Power Apps, c’est-à-dire du code que l’on peut appeler à plusieurs reprises mais où le code n’existe qu’une seule fois dans toute l’application, il y a plusieurs techniques :

    • on met un bouton quelque part, on met le bout de code sur sa propriété OnSelect, et pour le déclencher on fait un Select(NomDuBouton)

    • on met un toggle quelque part, on met le bout de code sur sa propriété OnChange et on met gloExecuteCode dans sa propriété Default puis lorsque l’on veut déclencher le code on fait Set(gloExecuteCode; Not(gloExecuteCode))

    L’inconvénient de ces 2 techniques c’est que l’on ne peux pas transmettre de paramètres au bout de code. C’est pourquoi il y a une technique plus élégante : l’utilisation de l’option Propriétés du composant amélioré pour les composants.

    👉 J’explique…

    Dans votre application, activez d’abord l’option en question :

    Cela aura pour effet de rajouter les fonctionnalités suivantes dans les composants (si vous étiez déjà sur l’onglet Composants lorsque vous avez activé l’option, il faut revenir sur l’onglet Ecrans puis retourner sur Composants pour que ce soit visible) :

    Les 2 nouvelles fonctionnalités sont les suivantes :

    • les propriétés des composants peuvent désormais avoir des paramètres

    • les composants peuvent désormais avoir des propriétés de comportement

    Lorsque l’on combine des paramètres à une propriété de sortie d’un composant on peut alors créer une “pseudo-fonction“.
    Par exemple, je peux créer un composant qui s’appelle Calcul (dans lequel il n’y a aucun contrôle -> il est vide) où je crée une propriété de sortie de type Nombre qui s’appelle Addition avec 2 paramètres N1 et N2 de type Nombre également :

    Ensuite, je définis la valeur de cette propriété à N1 + N2 :

    Eh bien je viens de créer une fonction d’addition de 2 nombres quelconques… 😍

    Pour l’utiliser il suffit de poser un exemplaire du composant (ici Calcul_1 en bleu) sur un écran, et par exemple dans un libellé d’écrire ceci pour avoir directement le résultat :

    Sympa non ? Ca ouvre pas mal de possibilités… D’ailleurs, sur le Github de Matthew Devaney vous trouverez des tonnes de fonctions faites par différentes personnes de la communauté… 😉

    NOTEATTENTION, les 2 techniques (avec le bouton et le toggle) décrites ci-dessus ne sont pas recommandées car la tentation est de placer ces contrôles sur un écran inutilisé visuellement par l’application. Or, Power Apps n’aime pas que sur un écran 1 on fasse référence à un contrôle qui se trouve sur un écran 2. Tout simplement parce-qu’il ne garantit pas que l’écran 1 est instancié (existe) AVANT l’écran 2.
    Ainsi, si sur le OnVisible de ton écran 1 vous faites un Select(btnExecuteCode) qui est sur un écran 2 mais que par malheur, lorsque vous lancez votre application, Power Apps n’a pas encore eu le temps d’instancier l’écran 2 alors que votre écran 1 est déjà visible, et bien votre code ne s’exécute pas… 😭
    Et cela est encore plus vrai si jamais l’option suivante est activée sur votre application :

    Elle augmente les performances de l’application en ne créant les contrôles (et donc les écrans) de votre application que lorsqu’ils sont affichés, mais elle implique du coup que ces mêmes contrôles n’existent donc pas tant qu’ils n’ont pas été affichés et ne peuvent donc pas être adressés…. ⛔

    @+ 😊

    PostID=8UBo6bCvAyjlac5

    R3dKap a répondu Il y a 9 mois 1 Membre · 0 Réponses
  • 0 Réponses

Désolé, aucune réponse n’a été trouvée.

Connectez-vous pour répondre.