Bruge Power Fx med kommandoer

Denne artikel omhandler aspekter af Power Fx, der er specifikke for kommandoer. Mange andre funktioner, der i dag bruges i lærredapps, kan også bruges. Vær opmærksom på, at der er forskelle, fordi kommandoerne er til modelbaserede apps.

  • Alle eksisterende dataflowfunktioner understøttes. Hvad er dataflow?
  • Vigtige funktioner, der fungerer sammen med data, understøttes.
  • Vigtige funktioner til simpel Confirm og Notify understøttes.
  • Hvis du vil se en liste over funktioner, der ikke understøttes, skal du gå til Funktioner, der ikke understøttes.

Bemærk

Det kan tage et par minutter at publicere Power Fx-kommandoer. Det er muligvis ikke indlysende, at baggrundshandlinger stadig kører, selv efter at publiceringshandlingen lader til at være fuldført. Du skal muligvis vente et par minutter efter publiceringen og derefter opdatere appen for at se, hvilke ændringer der afspejles. Det tager som regel længere tid, før der publiceres en Power Fx-baseret kommando for en app.

OnSelect

Definerer den logik, der skal køres, når knappen vælges i appen.

Visible

Definerer logik, der skjuler eller viser knappen, når du kører appen.

Hvis du vil definere synlighedslogik, skal du vælge kommandoen. Vælg derefter Synlighed i højre rude med kommandoegenskaber, og vælg Vis på betingelse fra formel. Du kan vælge Visible til venstre for formellinjen og derefter skrive et Power Fx-udtryk ved hjælp af formellinjen.

Egenskaben Selected

Felt Type Beskrivelse
Item Posten for DataSource En af de poster, der er valgt fra DataSource.
AllItems Tabel over poster fra DataSource Alle de poster, der er valgt fra DataSource.
State Enum Tilstand af det valgte kontrolelement. Rediger (=0), Ny (=1), Vis (=2)
Ikke gemt Boolesk Returnerer true, hvis Selected eller SelectedItems har ændringer, der ikke er gemt. Ellers returneres false. Returnerer altid false, hvis AutoSave er angivet til true (standardindstilling) i kommandokomponentbiblioteket.
  • Selected-egenskaben leveres af kommandoens vært.
  • Item- og AllItems-navne er nogenlunde konsistente med kontrolelementet Kombinationsfelt og Galleri, men det er et nyt mønster.
  • Hvis der ikke er valgt en post, returnerer Item Tom (IsBlank returnerer sand), og AllItems returnerer en tom tabel (IsEmpty returnerer sand).
  • DataSource med en null-værdi for postreferencer (polymorfe posttyper). Generiske funktioner kan kaldes, for eksempel kan Save eller IsType/AsType bruges.
  • Item er altid tom, hvis SelectionMax <> 1. Dette forhindrer, at der kun skrives formler ét element, og at de ikke skaleres til mere end ét.

AutoSave

  • Mange JavaScript-kommandoer starter med at gemme formularbufferen. Det skyldes, at det gør det nemmere at arbejde med resten af koden.
  • Formularbufferen gemmes som standard på vegne af appudvikleren.
    • Formularen gemmes, før kommandoen startes.
    • Eventuelle problemer, der opstår under lagringen, håndteres i formularens brugergrænseflade.

Funktionen Patch

Patch (opdater) den aktuelt valgte post

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

Bemærk

Hvis den relaterede tabel ikke allerede findes i kommandokomponentbiblioteket, skal du åbne den i lærredsstudiet og tilføje datakilden der.

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

Kontrollere og redigere en datoegenskab

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

Visible-egenskab: Du kan kun få vist kommandoen, hvis der er valgt en eller flere poster i en gittervisning

CountRows(Self.Selected.AllItems) > 0

Kontrollere synlighed baseret på postdata

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

Bemærk

Du kan finde flere indstillinger i referencen til klient-API'en om brug af JavaScript. Flere oplysninger: navigateTo (klient-API-reference)

Hvis du vil navigere til en brugerdefineret lærredsside i en modelbaseret app, skal du sende sidenavnet som det første argument.

Navigate( myCustomPage )

Hvis du vil navigere til standardvisningen af tabellen, skal du sende tabelnavnet som det første argument.

Navigate( Accounts )

Hvis du vil navigere til en specifik systemvisning af tabellen, skal du overføre enum for tabellens Views.

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

Hvis du vil navigere til standardformularen for tabellen, skal du overføre posten som det første argument.

Navigate( Gallery1.Selected )

Hvis du vil navigere til standardformularen for tabellen, skal du overføre en Dataverse-post, der er oprettet fra funktionen Defaults. Derved åbnes standardformularen med posten som en ny post. I funktionen Default bruges tabelnavnet til at oprette posten.

Navigate( Defaults( Accounts ) )

Optimere brugeroplevelsen med datakilde og postoplysninger

Brug DataSourceInfo-funktionen og RecordInfo-funktionen til at optimere brugeroplevelsen med oplysninger om de data, der vises og manipuleres.

Du kan f.eks. bruge RecordInfo til at finde ud af, om den aktuelle bruger har tilladelse til at ændre en post og korrekt få vist eller skjule knappen "Rediger" ved hjælp af egenskaben Synlig:

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

Du kan f.eks. bruge DataSourceInfo til at finde ud af, om den aktuelle bruger har tilladelse til at oprette en post og korrekt vise eller skjule knappen "Opret" ved hjælp af egenskaben Synlig:

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

Anmode om bekræftelse, før du træffer foranstaltninger

Brug Bekræft-funktionen til at vise en dialogboks oven på det aktuelle skærmbillede.

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

Viser en meddelelse, som er sand, hvis knappen Ja bliver trykket på, og meddelelsen falsk, hvis knappen Nej bliver trykket på.

Giv brugeren besked

Brugere af appen kan få vist en meddelelse ved at kalde funktionen Notify.

Bemærk

NotificationType.Success understøttes ikke i øjeblikket og resulterer i en informationsmeddelelsestype.

Notify( "Model-driven app notification message" )

Andre eksempler

Starte en URL-adresse

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

Adgang til egenskaben 1:N

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

Funktioner, der ikke understøttes

Følgende Power Fx-funktioner understøttes i øjeblikket ikke med kommandoer i modelbaserede apps.

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

Fasttekster understøttes ikke

  • 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

Andre områder, der ikke understøttes

  • Acceleration
  • App
  • Kompas
  • Forbindelse
  • Dataverse-kolonner for filtype
  • Miljø
  • Vært
  • Layout
  • Lokation
  • ScreenSize

Se også

Forstå formler for funktionsmåde

Formelreference

Oversigt over Power Fx