Utilisation de Power Fx avec des commandes

Cet article couvre les aspects de Power Fx qui sont spécifiques au commandement. De nombreuses autres fonctions utilisées aujourd’hui dans les applications canevas peuvent également être utilisées. Gardez à l’esprit qu’il existe des différences, car la commande concerne les applications basées sur un modèle.

  • Toutes les fonctions de flux de données existantes sont prises en charge. Que sont les flux de données ?
  • Les fonctions impératives qui fonctionnent avec les données sont prises en charge.
  • Les fonctions impératives pour les simples Confirm et Notify sont prises en charge.
  • Pour une liste des fonctions non prises en charge, accédez à Fonctions non prises en charge.

Notes

La publication des commandes Power Fx peut prendre quelques minutes. Il n’est peut-être pas évident que les opérations en arrière-plan continuent de s’exécuter même après que l’opération de publication semble terminée. Vous devrez peut-être attendre quelques minutes après la publication, puis actualiser l’application pour voir vos modifications reflétées. Cela prend généralement plus de temps la première fois qu’une commande basée sur Power Fx est publiée pour une application.

OnSelect

Définit la logique qui est exécutée lorsque le bouton est sélectionné dans l’application.

Visible

Définit la logique pour masquer ou afficher le bouton lors de l’exécution de l’application.

Pour définir la logique de visibilité, sélectionnez la commande. Sélectionnez ensuite Visibilité dans le volet des propriétés de la commande de droite et choisissez Afficher à la condition de la formule. Vous pouvez sélectionner Visible à gauche de la barre de formule, puis écrire une expression Power Fx à l’aide de la barre de formule.

Propriété sélectionnée

Champ Type Description
Item Enregistrement de DataSource L’un des enregistrements sélectionnés à partir de DataSource.
AllItems Table des enregistrements de DataSource Tous les enregistrements sélectionnés à partir de DataSource.
State Enum État du contrôle sélectionné. Modifier (=0), Créer (=1), Afficher (=2)
Non enregistré Entier Renvoie true si Selected ou SelectedItems ont des modifications non enregistrées. Sinon, renvoie false. Renvoie toujours false si AutoSave est défini sur true (option par défaut) dans la bibliothèque de composants de commande.
  • La propriété Selected est fournie par l’hôte de la commande.
  • Les noms Item et AllItems sont quelque peu cohérents avec le contrôle ComboBox et le contrôle Galerie, mais il s’agit d’un nouveau modèle.
  • Si aucun enregistrement n’est sélectionné, Item renvoie Blank (IsBlank renvoie True) et AllItems renvoie une table vide (IsEmpty renvoie true).
  • Null DataSource pour les références d’enregistrement (types d’enregistrement polymorphes). Des fonctions génériques peuvent être appelées, telles que Save ou IsType/AsType peuvent être utilisées.
  • Item est toujours vide si SelectionMax <> 1. Cela empêche d’écrire des formules sur un seul élément et de ne pas les mettre à l’échelle sur plusieurs.

AutoSave

  • De nombreuses commandes JavaScript commencent par enregistrer le tampon de formulaire. C’est parce que cela rend le reste du code plus facile à utiliser.
  • Par défaut, le tampon de formulaire est enregistré au nom du créateur d’applications.
    • Le formulaire est enregistré avant le lancement de la commande.
    • Tous les problèmes qui surviennent pendant l’opération de sauvegarde sont traités dans l’interface utilisateur du formulaire.

Fonction Patch

Corriger (mettre à jour) l’enregistrement actif

Patch(Accounts, Self.Selected.Item, {'Account Name': "Changed Account name"})

Notes

Si la table associée n’est pas déjà dans la bibliothèque de composants de commande, vous devrez l’ouvrir dans canvas studio et y ajouter le source de données.

Patch(Tasks,Defaults(Tasks),{Regarding:Self.Selected.Item},{Subject:"Subject of the Task"})

Vérifier et modifier une propriété de date

If(Self.Selected.Item.'Last Date Included in Campaign'>DateAdd(Now(),-3), Patch(Accounts,Self.Selected.Item,{'Last Date Included in Campaign':Date(2021,10,19)}))

Propriété visible : affiche la commande uniquement si un ou plusieurs enregistrements sont sélectionnés dans une vue en grille

CountRows(Self.Selected.AllItems) > 0

Contrôler la visibilité en fonction des données d’enregistrement

//Button will be visible for accounts with Account Rating > 20
Self.Selected.Item.'Account Rating'>20

Notes

Pour des options supplémentaires, consultez la référence de l’API client pour utiliser JavaScript. Pour plus d’informations : navigateTo (référence de l’API client)

Pour accéder à une page de canevas personnalisée dans une application basée sur un modèle, transmettez le nom de la page comme premier argument.

Navigate( myCustomPage )

Pour accéder à la vue par défaut de la table, passez le nom de la table comme premier argument.

Navigate( Accounts )

Pour accéder à un vue système spécifique de la table, transmettez l’énumération Views de la table.

Navigate( 'Accounts (Views)'.'My Active Accounts' )

Pour accéder au formulaire par défaut de la table, passez l’enregistrement comme premier argument.

Navigate( Gallery1.Selected )

Pour accéder à la forme par défaut du tableau, passez un enregistrement Dataverse créé à partir de la fonction Defaults. Cela ouvre le formulaire par défaut avec l’enregistrement en tant que nouvel enregistrement. La fonction Defaults prend le nom de la table pour créer l’enregistrement.

Navigate( Defaults( Accounts ) )

Optimiser l’expérience utilisateur avec des informations sur les sources de données et les enregistrements

Utilisez la fonction DataSourceInfo et la fonction RecordInfo pour optimiser l’expérience utilisateur avec des informations sur les données affichées et manipulées.

Par exemple, utilisez RecordInfo pour déterminer si l’utilisateur actuel est autorisé à modifier un enregistrement et à afficher ou masquer de manière appropriée un bouton "Modifier" en utilisant sa propriété Visible :

EditButton.Visible = 
   RecordInfo( Gallery1.Selected, RecordInfo.EditPermission )

Par exemple, utilisez DataSourceInfo pour déterminer si l’utilisateur actuel est autorisé à créer un enregistrement et à afficher ou masquer de manière appropriée un bouton « Créer » en utilisant sa propriété Visible :

CreateButton.Visible = 
   DataSourceInfo( Accounts, DataSourceInfo.CreatePermission )

Demander confirmation avant d’agir

Utilisez la fonction Confirm pour afficher une boîte de dialogue en haut de l’écran actuel.

Notify( Confirm( "Are you sure?", 
                 { ConfirmButton: "Yes", CancelButton: "No" } 
        ) 
)

Affiche une notification true si le bouton Oui est actionné et une notification false si le bouton Non est actionné.

Notifier l’utilisateur

Une notification peut être affichée aux utilisateurs de l’application en appelant la fonction de notification.

Notes

NotificationType.Success n’est actuellement pas pris en charge et entraînera un type de notification d’information.

Notify( "Model-driven app notification message" )

Autres exemples

Lancer une URL

Launch("https://www.bing.com");

Accès 1:Propriété N

Self.Selected.Item.'Recurring Appointments'
Self.Selected.Item.'Parent Account'.'Account Name'="parent"

Fonctions non prises en charge

Les fonctions Power Fx suivantes ne sont actuellement pas prises en charge avec la commande dans les applications pilotées par modèle.

  • Back()
  • Clear()
  • Collect()
  • Copy()
  • Disable()
  • Enable()
  • Exit()
  • InvokeControl()
  • Language()
  • LoadData()
  • Param()
  • ReadNFC()
  • RequestHide()
  • ResetForm()
  • Revert()
  • SaveData()
  • ScanBarcode()
  • Set()
  • SubmitForm()
  • UpdateContext()
  • User()
  • ViewForm()

Enums non prises en charge

  • Align
  • AlignInContainer
  • BarcodeType
  • BorderStyle
  • Color
  • Direction
  • DisplayMode
  • Font
  • FontWeight
  • FormPattern
  • GridStyle
  • ImagePosition
  • ImageRotation
  • LabelPosition
  • Layout
  • LayoutAlignItems
  • LayoutDirection
  • LayoutJustifyContent
  • LayoutMode
  • LayoutOverflow
  • ListItemTemplate
  • MapStyle
  • Overflow
  • PDFPasswordState
  • PenMode
  • RemoveFlags
  • ScreenTransition
  • TeamsTheme
  • TextFormat
  • TextMode
  • TextPosition
  • Themes
  • Transition
  • VerticalAlign
  • VirtualKeyboardMode
  • Zoom

Autres zones non prises en charge

  • Accélération
  • Appli
  • Boussole
  • Connexion
  • Colonnes de type de fichier Dataverse
  • Environnement
  • Hôte
  • Disposition
  • Emplacement
  • ScreenSize

Voir aussi

Comprendre les formules de comportement

Référence sur les formules

Vue d’ensemble de Power Fx