Freigeben über


Verwenden von Power Fx mit Befehlen

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

  • Alle vorhandenen Dataflow-Funktionen werden unterstützt. Was sind Datenflüsse?
  • Imperative Funktionen, die mit Daten arbeiten, werden unterstützt.
  • Imperative Funktionen für simples Confirm und Notify werden unterstützt.
  • Für eine Liste der nicht unterstützten Funktionen wechseln Sie zu "Funktionen" nicht unterstützt.

Hinweis

Das Veröffentlichen von Power Fx-Befehlen kann einige Minuten dauern. Es ist möglicherweise nicht offensichtlich, dass Hintergrundvorgänge auch nach Abschluss des Veröffentlichungsvorgangs noch ausgeführt werden. Möglicherweise müssen Sie einige Minuten nach der Veröffentlichung warten und dann die App aktualisieren, um die Änderungen anzuzeigen. Dieser Vorgang dauert in der Regel länger beim ersten Mal, wenn ein Power Fx-basierter Befehl 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 logik zum Ausblenden oder Anzeigen der Schaltfläche beim Ausführen der App.

Um die Sichtbarkeitslogik zu definieren, wählen Sie den Befehl aus. Wählen Sie dann im rechten Befehlseigenschaftenbereich die Option "Sichtbarkeit " aus, und wählen Sie " Auf Bedingung anzeigen" aus der Formel aus. Sie können auf der linken Seite der Bearbeitungsleiste "Sichtbar" auswählen und dann mithilfe der Bearbeitungsleiste einen Power Fx-Ausdruck schreiben.

Ausgewählte Eigenschaft

Feld Typ Description
Artikel Eintrag aus DataSource Einer der Datensätze, die aus der Datenquelle ausgewählt sind.
AllItems Datensatzverzeichnis aus der DataSource Alle Datensätze, die aus der Datenquelle ausgewählt sind.
Staat Enumeration Status des ausgewählten Steuerelements. Bearbeiten (=0), Neu (=1), Ansicht (=2)
Nicht erlöst Boolean Gibt "true" zurück, wenn "Selected" oder "SelectedItems" nicht gespeicherte Änderungen aufweisen. Andernfalls wird "false" zurückgegeben. Gibt immer "false" zurück, wenn "AutoSpeichern" in der Befehlskomponentenbibliothek auf "true" (Standardoption) festgelegt ist.
  • Die Selected-Eigenschaft wird vom Host des Befehls bereitgestellt.
  • Element und AllItems-Namen sind mit dem ComboBox-Steuerelement und dem Galerie-Steuerelement gewissermaßen konsistent, dies stellt jedoch ein neues Muster dar.
  • Wenn kein Datensatz ausgewählt ist, gibt Element "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 Datensatzverweise (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 für ein Element geschrieben werden und sich nicht auf mehrere Elemente skalieren lassen.

Automatisches Speichern

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

Patch-Funktion

Patchen (Aktualisieren) des aktuellen ausgewählten Datensatzes

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

Hinweis

Wenn sich die verknüpfte Tabelle noch nicht in der Befehlskomponentenbibliothek befindet, müssen Sie sie im 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 einer 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: Zeige den Befehl nur an, wenn ein oder mehrere Datensätze in einer Rasteransicht ausgewählt sind.

CountRows(Self.Selected.AllItems) > 0

Steuerung der Sichtbarkeit basierend auf Daten aus Datensätzen

//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. Weitere Informationen: navigateTo (Client-API-Referenz)

Um zu einer benutzerdefinierten Canvasseite innerhalb einer modellgesteuerten 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 das Enum der Tabelle Views.

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, der aus der Defaults-Funktion erstellt wurde. Dadurch wird das Standardformular geöffnet und der Datensatz als neuer Eintrag hinzugefügt. Die Defaults-Funktion verwendet den Tabellennamen, um den Datensatz zu erstellen.

Navigate( Defaults( Accounts ) )

Optimieren der Benutzererfahrung mit Datenquellen- und Datensatzinformationen

Verwenden Sie die DataSourceInfo-Funktion und die RecordInfo-Funktion, um die Benutzererfahrung mit Informationen zu den angezeigten und bearbeiteten Daten zu optimieren.

Verwenden Sie z. B. RecordInfo , um zu ermitteln, ob der aktuelle Benutzer über die Berechtigung zum Ändern eines Datensatzes verfügt und eine Schaltfläche "Bearbeiten" mithilfe der sichtbaren Eigenschaft entsprechend ein- oder ausblenden kann:

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

Verwenden Sie z. B . DataSourceInfo , um zu ermitteln, ob der aktuelle Benutzer über die Berechtigung zum Erstellen eines Datensatzes verfügt und eine Schaltfläche "Erstellen" mithilfe seiner Visible-Eigenschaft entsprechend ein- oder ausblenden kann:

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

Anfordern einer Bestätigung, bevor Sie Maßnahmen ergreifen

Verwenden Sie die Funktion "Bestätigen", um ein Dialogfeld auf dem aktuellen Bildschirm anzuzeigen.

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

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

Benachrichtigen des Benutzers

App-Benutzern kann eine Benachrichtigung angezeigt werden, indem sie die Benachrichtigungsfunktion aufruft.

Hinweis

NotificationType.Success wird derzeit nicht unterstützt und löst eine Informationsbenachrichtigung aus.

Notify( "Model-driven app notification message" )

Weitere Beispiele

Starten einer URL

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

Access 1:N-Eigenschaft

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

Mit Befehlen verfügbare Funktionen

Informationen zu den Formeln, die mit Befehlen in modellgesteuerten Apps unterstützt werden, finden Sie unter Formelreferenz – modellgesteuerte Apps.

Funktionen werden nicht unterstützt

Die folgenden Power Fx-Funktionen werden derzeit bei der Steuerung in modellgesteuerten Apps nicht unterstützt .

  • Zurück()
  • Clear()
  • Collect()
  • Copy()
  • Deaktivieren()
  • Enable()
  • Exit()
  • InvokeControl()
  • Sprache()
  • LoadData()
  • Param()
  • Print()
  • ReadNFC()
  • RequestHide()
  • ResetForm()
  • Revert()
  • SaveData()
  • ScanBarcode()
  • Set()
  • UpdateContext()
  • User()
  • ViewForm()

Enums werden nicht unterstützt

  • Align
  • AlignInContainer
  • BarcodeType
  • BorderStyle
  • Farbe
  • Richtung
  • DisplayMode
  • Schriftgröße
  • Schriftstärke
  • FormPattern
  • Rasterstil
  • ImagePosition
  • Bildrotation
  • LabelPosition
  • Gestaltung
  • LayoutAlignItems
  • LayoutDirection
  • LayoutJustifyContent
  • LayoutMode
  • LayoutOverflow
  • ListItemTemplate
  • Kartenstil
  • Overflow
  • PDFPasswordState
  • PenMode
  • RemoveFlags
  • ScreenTransition
  • TeamsTheme
  • TextFormat
  • Textmodus
  • TextPosition
  • Designs
  • Übergang
  • VerticalAlign
  • Modus der virtuellen Tastatur
  • Zoomen

Andere nicht unterstützte Bereiche

  • Beschleunigung
  • Anwendung
  • Compass
  • Connection
  • Dataverse-Dateitypspalten
  • Umwelt
  • Host
  • Gestaltung
  • Standort
  • ScreenSize

Siehe auch

Grundlegendes zu Verhaltensformeln

Formelreferenz

Übersicht über Power Fx