Freigeben über


Verwenden von Power Fx mit Befehlen

Dieser Artikel behandelt Aspekte von Power Fx, die spezifisch für das Befehlen sind. Viele andere Funktionen, die heute in Canvas-Apps verwendet werden, können ebenfalls verwendet werden. Beachten Sie, dass es Unterschiede gibt, da Befehle für modellgesteuerte Apps gelten.

  • Alle bestehenden Dataflow-Funktionen werden unterstützt. Was sind Dataflows?
  • Imperative Funktionen, die mit Daten arbeiten, werden unterstützt.
  • Imperative Funktionen für simples Confirm und Notify werden unterstützt.
  • Eine Liste der nicht unterstützten Funktionen finden Sie unter Nicht unterstützte Funktionen.

Hinweis

Das Veröffentlichen von Power Fx-Befehlen kann einige Minuten dauern. Es ist möglicherweise nicht offensichtlich, dass noch Hintergrundvorgänge ausgeführt werden, selbst nachdem der Veröffentlichungsvorgang scheinbar abgeschlossen wurde. Möglicherweise müssen Sie nach der Veröffentlichung einige Minuten warten und dann die App aktualisieren, damit Ihre Änderungen angezeigt werden. Dies dauert in der Regel länger, wenn ein Power Fx-basierter Befehl zum ersten Mal für eine App veröffentlicht wird.

OnSelect

Definiert die Logik, die ausgeführt wird, wenn die Schaltfläche in der App ausgewählt wird.

Sichtbar

Definiert die Logik zum Ausblenden oder Anzeigen der Schaltfläche beim Ausführen der App.

Wählen Sie den Befehl aus, um die Logik für die Sichtbarkeit festzulegen. Wählen Sie dann Sichtbarkeit im rechten Befehlseigenschaftenbereich und dann Bei Bedingung aus Formel anzeigen. Sie können links in der Formelleiste Sichtbar auswählen und dann einen Power Fx-Ausdruck mithilfe der Bearbeitungsleiste schreiben.

Ausgewählte Eigenschaft

Feld Typ Beschreibung
Element DataSource aufzeichnen Einer der aus der DataSource ausgewählten Datensätze.
AllItems Tabelle der Datensätze aus der DataSource Alle Datensätze, die aus der DataSource ausgewählt wurden.
Status Enumeration Status des ausgewählten Steuerelements. Bearbeiten (= 0), Neu (= 1), Anzeigen (= 2)
Nicht gespeichert Boolesch Gibt „wahr“ zurück, wenn „Selected“ oder „SelectedItems“ ungespeicherte Änderungen enthalten. Andernfalls wird „falsch“ zurückgegeben. Gibt immer „wahr“ zurück, wenn „AutoSave“ in der Befehlskomponentenbibliothek auf „wahr“ (Standardoption) gesetzt ist.
  • Die Eigenschaft Selected wird vom Host des Befehls bereitgestellt.
  • Artikel und Alle Elemente Namen stimmen in gewisser Weise mit dem ComboBox-Steuerelement und dem Katalog-Steuerelement überein, aber dies ist ein neues Muster.
  • Wenn kein Datensatz ausgewählt ist gibt Artikel „leer“ zurück („IsBlank“ gibt „true“ zurück) und AllItems gibt eine leere Tabelle zurück („IsEmpty“ gibt „true“ zurück).
  • Null DataSource für Datensatzreferenzen (polymorphe Datensatztypen). Es können generische Funktionen aufgerufen werden, zum Beispiel können „Save“ oder „IsType/AsType“ verwendet werden.
  • Element ist immer leer, wenn SelectionMax <> 1. Dadurch wird verhindert, dass Formeln nur in ein Element geschrieben und nicht auf mehr als eins skaliert werden.

AutoSave

  • Viele JavaScript-Befehle beginnen mit dem Speichern des Formularpuffers. Dies liegt daran, dass es einfacher ist, mit dem Rest des Codes zu arbeiten.
  • Standardmäßig wird der Formularpuffer im Namen des App-Herstellers gespeichert.
    • Das Formular wird gespeichert, bevor der Befehl eingeleitet wird.
    • Alle Probleme, die während des Speichervorgangs auftreten, werden in der Benutzeroberfläche des Formulars behandelt.

Patch-Funktion

Patcht (aktualisiert) den aktuell ausgewählten Datensatz

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

Hinweis

Wenn sich die zugehörige Tabelle nicht bereits in der Befehlskomponentenbibliothek befindet, müssen Sie sie in Canvas Studio öffnen und dort die Datenquelle hinzufügen.

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

Überprüfen und bearbeiten Sie eine Datumseigenschaft

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)}))

Sichtbare Eigenschaft: Befehl nur anzeigen, wenn ein oder mehrere Datensätze in einer Rasteransicht ausgewählt sind

CountRows(Self.Selected.AllItems) > 0

Kontrollieren Sie die Sichtbarkeit basierend auf Datensatzdaten

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

Hinweis

Weitere Optionen finden Sie in der Client-API-Referenz zur Verwendung von JavaScript. Mehr Informationen: NavigierenTo (Client-API-Referenz)

Um zu einer angepassten Canvas-Seite innerhalb einer modellbasierten App zu navigieren, übergeben Sie den Seitennamen als erstes Argument.

Navigate( myCustomPage )

Um zur Standardansicht der Tabelle zu navigieren, übergeben Sie den Tabellennamen als erstes Argument.

Navigate( Accounts )

Um zu einer bestimmten Systemansicht der Tabelle zu navigieren, übergeben Sie die Views-Enumeration der Tabelle.

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

Um zum Standardformular der Tabelle zu navigieren, übergeben Sie den Datensatz als erstes Argument.

Navigate( Gallery1.Selected )

Um zum Standardformular der Tabelle zu navigieren, übergeben Sie einen Dataverse Datensatz erstellt aus der Funktion Standardeinstellungen. Dadurch wird das Standardformular mit dem Datensatz als neuer Datensatz geöffnet. Die Funktion Defaults verwendet den Tabellennamen, um den Datensatz zu erstellen.

Navigate( Defaults( Accounts ) )

Die Benutzerfreundlichkeit mit Datenquellen und Datensatzinformationen optimieren

Verwenden Sie die DataSourceInfo-Funktion und die RecordInfo-Funktion, um die Benutzerfreundlichkeit mit Informationen über die angezeigten und bearbeiteten Daten zu optimieren.

Verwenden Sie zum Beispiel RecordInfo, um festzustellen, ob der aktuelle Benutzer berechtigt ist, einen Datensatz zu ändern, und blenden Sie die „Bearbeiten“-Schaltfläche mithilfe der Eigenschaft Sichtbar ein oder aus:

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

Verwenden Sie beispielsweise DataSourceInfo, um festzustellen, ob der aktuelle Benutzende die Berechtigung zum Erstellen eines Datensatzes hat, und um eine Schaltfläche „Erstellen“ mithilfe der Eigenschaft Sichtbar entsprechend anzuzeigen oder auszublenden:

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

Vor dem Durchführen einer Aktion um Bestätigung bitten

Verwenden Sie die Confirm-Funktion, um ein Dialogfeld über dem aktuellen Bildschirm anzuzeigen.

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

Zeigt eine Benachrichtigung true wenn die Schaltfläche Ja gedrückt wird, und eine Benachrichtigung false an, wenn die Schaltfläche Nein gedrückt wird.

Den Benutzer benachrichtigen

Eine Benachrichtigung kann App-Benutzern angezeigt werden, indem sie die Notify-Funktion aufrufen.

Hinweis

NotificationType.Success wird derzeit nicht unterstützt und führt zu einem Informationsbenachrichtigungstyp.

Notify( "Model-driven app notification message" )

Weitere Beispiele

Starten einer URL

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

Zugriff auf die Eigenschaft 1:N

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

Nicht unterstützte Funktionen

Die folgenden Power Fx-Funktionen werden in modelgesteuerten Apps derzeit nicht mit Befehlen unterstützt.

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

Nicht unterstützte Enumerationen

  • 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
  • Designs
  • Übergang
  • VerticalAlign
  • VirtualKeyboardMode
  • Zoom

Andere nicht unterstützte Bereiche

  • Beschleunigung
  • Anw
  • Kompass
  • Verbindung
  • Dataverse-Dateitypspalten
  • Umgebung
  • Host
  • Layout
  • Ort
  • ScreenSize

Siehe auch

Grundlegendes zu Verhaltensformeln

Formelbezug

Übersicht über Power Fx