Använda Power Fx med kommandon

Den här artikeln handlar om aspekter av Power Fx som är specifika för kommandotolk. Många andra funktioner som idag används i arbetsyteappar kan också användas. Tänk på att det finns skillnader eftersom kommandot är för modellstyrda appar.

  • Alla befintliga dataflödesfunktioner stöds. Vad är dataflöden?
  • Det finns stöd för imperativa funktioner som fungerar med data.
  • Imperativa funktioner för enkla Confirm och Notify stöds.
  • Om du vill se en lista över funktioner som inte stöds går du till Funktioner som inte stöds.

Anteckning

Det kan ta några minuter att publicera Power Fx-kommandon. Det är kanske inte uppenbart att bakgrundsåtgärder fortfarande körs även efter det att publiceringen verkar ha slutförts. Du kan behöva vänta några minuter efter publiceringen och sedan uppdatera appen för att se dina ändringar. Det tar oftast längre tid första gången ett Power Fx-kommando publiceras för en app.

OnSelect

Definierar logiken som ska köras när knappen väljs i appen.

Synligt

Definierar logiken för att dölja eller visa knappen när du kör appen.

Välj kommandot om du vill definiera synlighetslogik. Välj sedan Synlighet i fönstret för rätt kommandoegenskaper och välj Visa i villkor från formeln. Du kan nu välja Synlig till vänster i formelfältet och sedan skriva ett Power Fx-uttryck med formelfältet.

Vald egenskap

Fält Type Beskrivning
Artikel Post till DataSource En av posterna som valts från DataSource.
AllItems Posttabell från DataSource Alla posterna som valts från DataSource.
State Enum Tillstånd för den valda kontrollen. Redigera (=0), Ny (=1), Visa (=2)
Har inte sparats Boolean Returnerar sant om markerade eller SelectedItems har ändringar som inte sparats. Annars returneras falsk. Returnerar alltid falskt om AutoSave har angetts till sant (standardalternativ) i kommandokomponentbiblioteket.
  • Egenskapen Vald tillhandahålls av kommandots värd.
  • Namnen Item och AllItems stämmer något överens med kontrollen ComboBox och Galleri men är ett nytt mönster.
  • Om ingen post är markerad returnerar Item tom (IsBlank returnerar true) och AllItems returnerar en tom tabell (IsEmpty returnerar true).
  • Null DataSource för postreferenser (polymorfiska posttyper). Generiska funktioner kan anropas, som Spara eller IsType/AsType.
  • Artikel är alltid tom om SelectionMax <> 1. Detta förhindrar att det endast går att skriva formeln till ett objekt och inte till fler än ett.

AutoSave

  • Många JavaScript-kommandon startar genom att spara formuläret. Det beror på att resten av koden blir enklare att arbeta med.
  • Som standard sparas formuläret för apptillverkarens räkning.
    • Formuläret sparas innan kommandot startas.
    • Problem som uppstår under sparåtgärden beror på att formulärets användargränssnitt används.

Patch-funktion

Korrigera (uppdatera) den aktuella valda posten

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

Skapa en relaterad post

Anteckning

Om den relaterade tabellen inte redan finns i kommandokomponentbiblioteket måste du öppna den i studio och lägga till datakälla där.

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

Kontrollera och redigera en egenskap för datum

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

Synlig egenskap: Visa endast kommandot om en eller flera poster har markerats i en rutnätsvy

CountRows(Self.Selected.AllItems) > 0

Kontrollera synligheten utifrån postdata

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

Anteckning

Ytterligare alternativ finns i klientens API-referens för att använda JavaScript. Mer information: navigateTo (Klient-API-referens)

Om du vill navigera till en anpassad sida i en modellbaserad app skickar du sidnamnet som det första argumentet.

Navigate( myCustomPage )

Om du vill navigera till tabellens standardvy skickar du tabellnamnet som det första argumentet.

Navigate( Accounts )

Om du vill navigera till en specifik systemvy i tabellen skickar du tabellens Views.

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

Om du vill navigera till standardformulär i tabellen skicka posten som det första argumentet.

Navigate( Gallery1.Selected )

För att navigera till tabellens standardform, passera en Dataverse post som skapats från funktionen Defaults. Standardformuläret öppnas med posten som en ny post. Funktionen Defaults tar tabellnamnet för att skapa posten.

Navigate( Defaults( Accounts ) )

Optimera användarupplevelsen med datakälla och registrera information

Använd funktionen DataSourceInfo och RecordInfo för att optimera användarupplevelsen med information om data som visas och ändras.

Använd till exempel RecordInfo för att avgöra om den aktuella användaren har behörighet att ändra en post och visa eller dölja en "Redigera"-knapp på lämpligt sätt med hjälp av egenskapen Synlig:

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

Du kan till exempel använda DataSourceInfo för att avgöra om den nuvarande användaren har behörighet att skapa en post och lämpligt visa eller dölja en "Skapa"-knapp med hjälp av dess egenskap Synligt:

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

Be om bekräftelse innan du vidtar åtgärder

Använd Confirm funktion för att visa en dialogruta överst på den aktuella skärmen.

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

Ett meddelandeför sant visas om knappen Ja trycks in och ett meddelande för falskt om knappen Nej trycks in.

Meddela användaren

En avisering kan visas för appanvändarna genom att funktionen Notify.

Anteckning

NotificationType.Success stöds för närvarande inte, och det resulterar i en informationsaviseringstyp.

Notify( "Model-driven app notification message" )

Andra exempel

Starta en URL

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

Egenskapen Access 1 till N

Self.Selected.Item.'Recurring Appointments'

Egenskapen Check för en relaterad post

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

Funktionen stöds inte

Följande Power Fx-funktioner stöds för närvarande inte med kommando i modellstyrda appar.

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

Enums stöds inte

  • Justera
  • AlignInContainer
  • BarcodeType
  • BorderStyle
  • Color
  • Direction
  • DisplayMode
  • Teckensnitt
  • FontWeight
  • FormPattern
  • GridStyle
  • ImagePosition
  • ImageRotation
  • LabelPosition
  • Layout
  • LayoutAlignItems
  • LayoutDirection
  • LayoutJustifyContent
  • LayoutMode
  • LayoutOverflow
  • ListItemTemplate
  • MapStyle
  • Spill
  • PDFPasswordState
  • PenMode
  • RemoveFlags
  • ScreenTransition
  • TeamsTheme
  • TextFormat
  • TextMode
  • TextPosition
  • Teman
  • Övergång
  • VerticalAlign
  • VirtualKeyboardMode
  • Zooma

Andra områden som inte stöds

  • Acceleration
  • Program
  • Kompass
  • Anslutning
  • Dataverse filtypkolumner
  • Miljö
  • Värd
  • Layout
  • Plats
  • ScreenSize

Se även

Förstå beteendeformler

Formelreferens

Översikt över Power Fx