Minuteur-macro

  • Minuteur-macro

    Posté par Sylvain sur 18 mars 2022 à 5h33

    Hello tous, quelqu’un a t il déjà utiliser les minuteurs pour faire des macros ?

    Je pensais utiliser une page dédiée sur laquelle je mettrais des minuteurs avec un script spécifique à chaque fin de compte-à-rebours. Puis je les appelle selon la demande.

    Quelqu’un à déjà un retour d’expérience sur cette pratique ?

    PostID=m9I5cvcPjoEoVGk

    Didier ALTIDE a répondu Il y a 9 mois, 2 semaines 1 Membre · 4 Réponses
  • 4 Réponses
  • Pierre

    Membre
    18 mars 2022 à 9h26

    Salut, Yep j’utilise très souvent les minuteurs comme réceptacle de mes codes, de cette manière je peux les appeler de différente façon.
    Mais maintenant il y a les “Behavior properties” qui peuvent jouer ce role, mais c’est toujours en experimental.

    CommentID=uMs75hQAvlPLeex, PostID=m9I5cvcPjoEoVGk

  • R3dKap

    Membre
    18 mars 2022 à 12h06

    Salut @Sylvain,

    Pour faire des “fonctions” (ce que tu appelles des macros 😉) 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 :

    • tu mets un bouton quelque part, tu mets ton bout de code sur sa propriété OnSelect, et pour le déclencher tu fais un Select(NomDuBouton)

    • tu mets un toggle quelque part, tu mets ton bout de code sur sa propriété OnChange et tu mets gloExecuteCode dans sa propriété Default puis lorsque tu veux déclencher le code tu fais Set(gloExecuteCode; Not(gloExecuteCode))

    L’inconvénient de ces 2 techniques c’est que tu ne peux pas transmettre de paramètres à ton bout de code. C’est pourquoi il y a une technique plus élégante comme l’indique @Pierre Bourdial (sauf que ce sont pas les Behavior properties mais les Output properties avec l’option Propriétés du composant amélioré activée).

    Je m’explique…

    Dans ton application, active d’abord l’option en question :

    Cela aura pour effet de te rajouter les fonctionnalités suivantes dans les composants (si tu étais déjà sur l’onglet Composants lorsque tu as activé l’option, il faut que tu reviennes sur l’onglet Ecrans puis retour sur Composants pour que ce soit visible) :

    Les 2 nouvelles fonctionnalités sont les suivantes :

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

    • ton composant peut désormais avoir des propriétés de comportement

    Lorsque tu combines des paramètres à une propriété de sortie d’un composant tu peux 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, tu définis la valeur de cette propriété à N1 + N2 :

    Tu viens de créer une fonction d’addition de 2 nombres quelconques.

    Pour l’utiliser tu poses un exemplaire de ton composant sur ton écran (ici Calcul_1), et par exemple dans un libellé tu peux faire ceci :

    Sympa non ? Ca ouvre pas mal de possibilités… D’ailleurs, sur le Github de Matthew Devaney tu trouveras 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 tu fais un Select(btnExecuteCode) qui est sur un écran 2 mais que par malheur lorsque tu lances ton application Power Apps n’a pas encore eu le temps d’instancier l’écran 2 alors que ton écran 1 est déjà visible, et bien ton code ne s’exécute pas…
    Cela est encore plus vrai si jamais l’option suivante est activée sur ton application :

    Elle augmente les performances de l’application en ne créant les contrôles (et donc les écrans) de ton application que lorsqu’ils sont affichés.

    CommentID=4ETqVWksJikudH2, PostID=m9I5cvcPjoEoVGk

  • Sylvain

    Membre
    23 mars 2022 à 22h55

    Super, merci à tous les deux. Je vais creuser 🙂

    a+

    CommentID=FdlTAs5TyR90YMU, PostID=m9I5cvcPjoEoVGk

  • Didier ALTIDE

    Membre
    25 mars 2022 à 7h46

    Dans certaines de mes apps j’utilise le minuteur pour restaurer automatiquement certains contrôles. Par ex, un “date picker” qui a une date invalide. Le timer démarre si la date est invalide, et à l’expiration de sa durée (en général très courte) il effectue l’action qui permet de restaurer le date picker à une date valide.

    CommentID=g1qD5Mp36vUwGbY, PostID=m9I5cvcPjoEoVGk

Connectez-vous pour répondre.