Power Fx gebruiken met opdrachten
In dit artikel komen aspecten van Power Fx aan bod die specifiek zijn voor het gebruik van opdrachten. Veel andere functies die tegenwoordig in canvas-apps worden gebruikt, kunnen ook worden gebruikt. Houd er rekening mee dat er verschillen zijn, omdat opdrachten voor modelgestuurde apps zijn.
- Alle bestaande gegevensstroomfuncties worden ondersteund. Wat zijn gegevensstromen?
- Dwingende functies die met gegevens werken worden ondersteund.
- Dwingende functies voor eenvoudige bewerkingen
Confirm
enNotify
worden ondersteund. - Voor een lijst met functies die niet worden ondersteund, gaat u naar Niet-ondersteunde functies.
Notitie
Het publiceren van Power Fx-opdrachten kan enkele minuten duren. Het is misschien niet duidelijk dat nog steeds achtergrondbewerkingen worden uitgevoerd, zelfs nadat de publicatiebewerking lijkt te zijn voltooid. Het kan zijn dat u na publicatie enkele minuten moet wachten en vervolgens de app moet vernieuwen om uw wijzigingen weer te geven. Dit duurt doorgaans langer wanneer voor het eerst een op Power Fx gebaseerde opdracht voor een app wordt gepubliceerd.
OnSelect
Definieert de logica die wordt uitgevoerd wanneer de knop wordt geselecteerd in de app.
Visible
Definieert logica voor het verbergen of weergeven van de knop bij het uitvoeren van de app.
Selecteer de opdracht om de zichtbaarheidslogica te definiëren. Selecteer vervolgens Visibility in het rechterdeelvenster met opdrachteigenschappen en kies Weergeven op voorwaarde van formule. U kunt Visible selecteren aan de linkerkant van de formulebalk en vervolgens een Power Fx-expressie schrijven met behulp van de formulebalk.
Geselecteerde eigenschap
Veld | Type | Beschrijving |
---|---|---|
Item | Record van de DataSource | Een van de records die zijn geselecteerd uit de DataSource. |
AllItems | Tabel met records uit de DataSource | Alle records die zijn geselecteerd uit de DataSource. |
State | Enum | Status van het geselecteerde besturingselement. Bewerken (=0), Nieuw (=1), Weergeven (=2) |
Unsaved | Booleaanse waarde | Retourneert true als Selected of SelectedItems niet-opgeslagen wijzigingen bevat. Retourneert anders false. Retourneert altijd false als AutoSave is ingesteld op true (standaardoptie) in de onderdelenbibliotheek voor opdrachten. |
- De eigenschap Selected wordt geleverd door de host van de opdracht.
- Item en Alle Items namen zijn enigszins consistent met het ComboBox-besturingselement en Galerij-besturingselement, maar dit is een nieuw patroon.
- Als er geen record is geselecteerd, retourneert Item de waarde Blank (IsBlank retourneert true) en AllItems retourneert een lege tabel (IsEmpty retourneert true).
- Null DataSource voor recordverwijzingen (polymorfe recordtypen). Er kunnen generieke functies worden aangeroepen, zoals Save of IsType/AsType.
- Item is altijd leeg als SelectionMax <> 1. Dit voorkomt dat formules naar slechts één item worden geschreven en niet worden geschaald naar meer dan één.
AutoSave
- Veel JavaScript-opdrachten beginnen met het opslaan van de formulierbuffer. Dit is omdat het de rest van de code gemakkelijker maakt om mee te werken.
- Standaard wordt de formulierbuffer opgeslagen namens de app-maker.
- Het formulier wordt opgeslagen voordat de opdracht wordt gestart.
- Alle problemen die optreden tijdens het opslaan worden behandeld in de gebruikersinterface van het formulier.
Functie Patch
De huidige geselecteerde record patchen (bijwerken)
Patch(Accounts, Self.Selected.Item, {'Account Name': "Changed Account name"})
Gerelateerde record maken
Notitie
Als de gerelateerde tabel nog niet in de onderdelenbibliotheek voor opdrachten staat, moet u deze openen in canvas studio en de gegevensbron daar toevoegen.
Patch(Tasks,Defaults(Tasks),{Regarding:Self.Selected.Item},{Subject:"Subject of the Task"})
Een datumeigenschap controleren en bewerken
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)}))
Zichtbare eigenschap: Toon de opdracht alleen als een of meer records zijn geselecteerd in een rasterweergave
CountRows(Self.Selected.AllItems) > 0
Zichtbaarheid regelen op basis van recordgegevens
//Button will be visible for accounts with Account Rating > 20
Self.Selected.Item.'Account Rating'>20
Navigeren
Notitie
Zie de client-API-verwijzing om JavaScript te gebruiken voor extra opties. Meer informatie: navigatieNaar (Client API-referentie)
Naar een aangepaste pagina navigeren
Als u naar een aangepaste canvaspagina wilt navigeren binnen een modelgestuurde app, geeft u de paginanaam als het eerste argument door.
Navigate( myCustomPage )
Navigeren naar de standaardweergave van de tabel
Als u naar de standaardweergave van de tabel wilt navigeren, geeft u de tabelnaam door als eerste argument.
Navigate( Accounts )
Navigeren naar de specifieke systeemweergave van de tabel
Als u naar een specifieke systeemweergave van de tabel wilt navigeren, geeft u de enum Views
van de tabel door.
Navigate( 'Accounts (Views)'.'My Active Accounts' )
Navigeren naar het standaardformulier van de tabel
Als u naar het standaardformulier van de tabel wilt navigeren, geeft u de record als eerste argument door.
Navigate( Gallery1.Selected )
Navigeer naar het standaardformulier van de tabel in de aanmaakmodus
Om naar het standaardformulier van de tabel te navigeren, geef een Dataverse-record door dat is gemaakt van de functie Defaults. Hiermee wordt het standaardformulier geopend met het record als een nieuw record. De Defaults-functie neemt de tabelnaam om het record te maken.
Navigate( Defaults( Accounts ) )
Optimaliseer de gebruikerservaring met gegevensbron en registreer informatie
Gebruik de DataSourceInfo-functie en RecordInfo-functie om de gebruikerservaring te optimaliseren met informatie over de gegevens die worden weergegeven en gemanipuleerd.
Gebruik bijvoorbeeld RecordInfo om te bepalen of de huidige gebruiker toestemming heeft om een record te wijzigen en om op de juiste manier een knop Bewerken te tonen of te verbergen met behulp van de eigenschap Zichtbaar:
EditButton.Visible =
RecordInfo( Gallery1.Selected, RecordInfo.EditPermission )
Gebruik bijvoorbeeld DataSourceInfo om te bepalen of de huidige gebruiker toestemming heeft om een record te maken en op passende wijze een knop Maken weer te geven of te verbergen met behulp van de eigenschap Visible:
CreateButton.Visible =
DataSourceInfo( Accounts, DataSourceInfo.CreatePermission )
Vraag om bevestiging voordat u actie onderneemt
Gebruik de Bevestigen-functie om een dialoogvenster boven aan het huidige scherm weer te geven.
Notify( Confirm( "Are you sure?",
{ ConfirmButton: "Yes", CancelButton: "No" }
)
)
De melding true wordt weergegeven als de knop Ja wordt ingedrukt en de melding false wordt weergegeven als de knop Nee wordt ingedrukt.
De gebruiker informeren
Een melding kan aan app-gebruikers worden getoond door de functie Notify aan te roepen.
Notitie
NotificationType.Success
wordt momenteel niet ondersteund en resulteert in een informatieve meldingstype.
Notify( "Model-driven app notification message" )
Andere voorbeelden
Een URL starten
Launch("https://www.bing.com");
Eigenschap Access 1:N
Self.Selected.Item.'Recurring Appointments'
Controleer de eigenschap van een gerelateerd record
Self.Selected.Item.'Parent Account'.'Account Name'="parent"
Niet-ondersteunde functies
De volgende Power Fx-functies worden momenteel niet ondersteund voor opdrachten in modelgestuurde apps.
- Back()
- Clear()
- Collect()
- Copy()
- Disable()
- Enable()
- Exit()
- InvokeControl()
- Language()
- LoadData()
- Param()
- Afdrukken()
- ReadNFC()
- RequestHide()
- ResetForm()
- Revert()
- SaveData()
- ScanBarcode()
- Set()
- SubmitForm()
- UpdateContext()
- User()
- ViewForm()
Niet-ondersteunde enums
- 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
- Themes
- Transition
- VerticalAlign
- VirtualKeyboardMode
- Zoom
Andere niet-ondersteunde gebieden
- Acceleration
- App
- Compass
- Connection
- Dataverse-bestandstypekolommen
- Environment
- Host
- Layout
- Locatie
- ScreenSize