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
ochNotify
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
Navigera
Anteckning
Ytterligare alternativ finns i klientens API-referens för att använda JavaScript. Mer information: navigateTo (Klient-API-referens)
Navigera till en anpassad sida
Om du vill navigera till en anpassad sida i en modellbaserad app skickar du sidnamnet som det första argumentet.
Navigate( myCustomPage )
Navigera till tabellens standardvy
Om du vill navigera till tabellens standardvy skickar du tabellnamnet som det första argumentet.
Navigate( Accounts )
Navigera till en specifik systemvy i tabellen
Om du vill navigera till en specifik systemvy i tabellen skickar du tabellens Views
.
Navigate( 'Accounts (Views)'.'My Active Accounts' )
Navigera till standardformulär i tabellen
Om du vill navigera till standardformulär i tabellen skicka posten som det första argumentet.
Navigate( Gallery1.Selected )
Navigera till standardformulär i tabellen i skapa-läge
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