Créer une formule dynamique à l’aide de contrôles et de fonctions
L’exercice suivant crée une formule dynamique permettant de changer la valeur de la propriété DisplayMode d’un bouton à l’aide du contrôle Bouton et de la fonction UpdateContext.
Accédez à Power Apps.
Cliquez sur + Créer>Application vide>Créer (sous Application canevas vide). Nommez votre application et cliquez sur Créer.
Sélectionnez l’option de menu Insérer et ajoutez un contrôle Bouton.
Redéfinissez la propriété Text du contrôle Bouton sur Add.
Conseil
Vous pouvez modifier rapidement la propriété Text d’un contrôle Bouton en double-cliquant sur le contrôle lui-même en mode Édition.
Insérez un autre contrôle Bouton et redéfinissez la propriété Text sur Clear.
Ajoutez un contrôle Libellé de texte et un contrôle Saisie de texte au canevas.
Redéfinissez le nom du contrôle Saisie de texte sur tiAmount et dans la propriété Default, supprimez « Saisie de texte ». Pour la propriété Format, saisissez
TextFormat.Number
.Remarque
L’image ci-dessous illustre l’exercice terminé. Consultez cette image pour le placement et les noms des contrôles. Si vous renvoyez des erreurs avec votre code, vérifiez que les noms de vos contrôles correspondent au code écrit.
Sélectionnez le bouton Add (Button1), puis définissez la propriété OnSelect sur :
UpdateContext({RunningTotal: RunningTotal + Value(tiAmount.Text)})
Sélectionnez le bouton Clear (Button2), puis définissez la propriété OnSelect sur :
UpdateContext({RunningTotal: 0}); Reset (tiAmount)
Définissez la propriété DisplayMode du bouton Clear sur :
If(RunningTotal > 0, DisplayMode.Edit, DisplayMode.Disabled)
Notez qu’une fois que vous avez mis à jour la propriété DisplayMode, le bouton s’affiche grisé (ou désactivé).
Sélectionnez le contrôle Libellé (Label1) et redéfinissez la propriété Text sur notre variable de contexte :
RunningTotal
.Testez l’application en mode Aperçu. Dans le contrôle Saisie de texte, saisissez un nombre positif et cliquez sur le bouton Add.
Dès que vous cliquez sur le bouton Add, le bouton Clear est de nouveau sélectionnable.
Cliquez sur le bouton Clear pour effacer le champ de saisie et la variable de contexte RunningTotal.
Dans cet exemple, une fonction If nous permet de déterminer si la variable de contexte RunningTotal est supérieure à 0. Si elle est supérieure à 0, le bouton Clear devient modifiable (DisplayMode.Edit). Si la variable n’a aucune valeur ou est égale à 0, notre bouton est désactivé (DisplayMode.disabled).
Une autre façon d’obtenir la même fonctionnalité consiste à éviter la variable de contexte dans les formules. Dans ce cas, vous pouvez nommer un contrôle dans la formule DisplayMode. Par exemple, nous pourrions utiliser la valeur de notre contrôle Libellé dans la formule.
Repassez l’application en mode Édition et sélectionnez votre bouton Clear. Sélectionnez la propriété DisplayMode et redéfinissez la formule comme suit :
If(Value(Label1.Text) > 0, DisplayMode.Edit, DisplayMode.Disabled)
Comme notre contrôle Libellé stocke des informations sous forme de texte, n’oubliez pas d’utiliser la fonction Value. La fonction Value convertit une chaîne numérique de texte en nombre. Si vous essayez d’évaluer un texte par rapport à une valeur, une erreur s’affiche dans la formule. Inclure la propriété Text du contrôle Libellé dans un wrapper dans une fonction Value garantit que Power Apps l’interprète comme un nombre.
Au fur et à mesure que vous allez découvrir, développer et déployer d’autres applications, vous allez vous rendre compte qu’en général, plusieurs façons permettent de créer la même fonctionnalité à l’aide de contrôles, fonctions et propriétés différents.