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
undNotify
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"})
Einen verknüpften Datensatz erstellen
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
Navigieren
Hinweis
Weitere Optionen finden Sie in der Client-API-Referenz zur Verwendung von JavaScript. Mehr Informationen: NavigierenTo (Client-API-Referenz)
Zu einer angepassten Seite navigieren
Um zu einer angepassten Canvas-Seite innerhalb einer modellbasierten App zu navigieren, übergeben Sie den Seitennamen als erstes Argument.
Navigate( myCustomPage )
Navigieren Sie zur Standardansicht der Tabelle
Um zur Standardansicht der Tabelle zu navigieren, übergeben Sie den Tabellennamen als erstes Argument.
Navigate( Accounts )
Navigieren Sie zur spezifischen Systemansicht der Tabelle
Um zu einer bestimmten Systemansicht der Tabelle zu navigieren, übergeben Sie die Views
-Enumeration der Tabelle.
Navigate( 'Accounts (Views)'.'My Active Accounts' )
Navigieren Sie zum Standardformular der Tabelle
Um zum Standardformular der Tabelle zu navigieren, übergeben Sie den Datensatz als erstes Argument.
Navigate( Gallery1.Selected )
Navigieren Sie zum Standardformular der Tabelle im Erstellungsmodus
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'
Eigenschaft eines Bezugsdatensatzes prüfen
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()
- Drucken()
- 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