Delen via


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 en Notify 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"})

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

Notitie

Zie de client-API-verwijzing om JavaScript te gebruiken voor extra opties. Meer informatie: navigatieNaar (Client API-referentie)

Als u naar een aangepaste canvaspagina wilt navigeren binnen een modelgestuurde app, geeft u de paginanaam als het eerste argument door.

Navigate( myCustomPage )

Als u naar de standaardweergave van de tabel wilt navigeren, geeft u de tabelnaam door als eerste argument.

Navigate( Accounts )

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

Als u naar het standaardformulier van de tabel wilt navigeren, geeft u de record als eerste argument door.

Navigate( Gallery1.Selected )

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'
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()
  • 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

Zie ook

Gedragsformules begrijpen

Formuleverwijzing

Overzicht van Power Fx