Funktionen UpdateContext

Gælder for: Lærredapps

Opretter eller opdaterer kontekstafhængige variabler på det aktuelle skærmbillede.

Oversigt

Brug funktionen UpdateContext til at oprette en kontekstvariabel, der midlertidigt indeholder oplysninger, f.eks. antal gange brugeren har valgt en knap eller resultatet af en datahandling.

Kontekstafhængige variabler er begrænset til et skærmbillede, hvilket betyder, at du ikke kan oprette en formel, som refererer til en kontekstafhængig variabel på et anden skærmbillede. Hvis du har brugt et andet programmeringsværktøj, kan du betragte en kontekstafhængig variabel som en lokal variabel. Brug Set-funktionen til at arbejde med globale variabler, der er tilgængelige i hele appen.

Power Apps er baseret på formler, der automatisk genberegnes, når brugeren interagerer med en app. Kontekstafhængige variabler tilbyder ikke den fordel, hvilket kan gøre det sværere at oprette og forstå din app. Se artiklen om at arbejde med variabler, før du bruger en kontekstafhængig variabel.

Beskrivelse

Du opretter eller opdaterer en kontekstafhængig variabel ved at sende en enkelt post til funktionen UpdateContext. I hver post skal du angive navnet på en kolonne, som definerer eller svarer til navnet på variablen, og den værdi, du vil tildele denne variabel.

  • Hvis du angiver navnet på en variabel, som du tidligere har defineret, indstiller UpdateContext værdien af variablen til den værdi, du angiver.
  • Hvis du angiver navnet på en variabel, der endnu ikke findes, opretter UpdateContext en variabel med det pågældende navn og indstiller værdien af variablen til den værdi, du angiver.
  • Hvis du tidligere definerede en variabel, men ikke angiver den i denne specifikke UpdateContext-formel, forbliver dens værdi uændret.

Kontekstafhængige variabler oprettes implicit vha. funktionerne UpdateContext eller Navigate. Der kræves ingen eksplicit erklæring. Hvis du fjerner alle UpdateContext- og Navigate-referencer til en kontekstafhængig variabel, slettes den kontekstafhængige variabel. Hvis du vil rydde en variabel, skal du angive dens værdi til resultatet af funktionen Blank.

Du kan se værdier, definitioner og brug af dine variabler i visningen Variabler i menuen Filer i oprettelsesmiljøet.

Du henviser til en kontekstvariabel i en formel vha. variablens kolonnenavn. UpdateContext( { ShowLogo: true } ) opretter f.eks. en kontekstafhængig variabel med navnet ShowLogo og indstiller dens værdi til sand. Du kan derefter bruge værdien for denne kontekstafhængige variabel ved at bruge navnet ShowLogo i en formel. Du kan skrive ShowLogo som formlen for egenskaben Visible for et image-kontrolelement og vise eller skjule dette kontrolelement, afhængigt af om værdien af den kontekstafhængige variabel er sand eller falsk.

Som vist i eksemplerne senere i dette emne, kan kontekstafhængige variabler indeholde flere forskellige typer oplysninger, herunder følgende:

  • en enkelt værdi
  • en post
  • en tabel
  • en objektreference
  • ethvert resultat af en formel

En kontekstafhængig variabel beholder sin værdi, indtil appen lukkes. Hvis du definerer en kontekstafhængig variabel og indstiller værdien på et bestemt skærmbillede, forbliver disse oplysninger intakte, selv når brugeren skifter til et andet skærmbillede. Når appen lukkes, går den kontekstafhængige variabels værdi tabt og skal gendannes, når appen indlæses igen.

Hver kontekstafhængige variabel er begrænset til et skærmbillede. Hvis du vil definere en kontekstafhængig variabel på ét skærmbillede og ændre denne variabel fra et andet skærmbillede, skal du oprette en formel, der er baseret på funktionen Navigate. Du kan også bruge en global variabel.

UpdateContext har ingen returværdi, og du kan kun bruge den i en funktionsformel.

Syntaks

UpdateContext( UpdateRecord )

  • UpdateRecord – påkrævet. En post, der indeholder navnet på mindst én kolonne og en værdi for den pågældende kolonne. En kontekstafhængig variabel oprettes eller opdateres for hver kolonne og værdi, du angiver.

UpdateContext( { ContextVariable1: Value1 [, ContextVariable2: Value2 [, ... ] ] } )

  • ContextVariable1 – påkrævet. Navnet på en kontekstafhængig variabel, der skal oprettes eller opdateres.
  • Value1 – påkrævet. Den værdi, der skal tildeles til den kontekstafhængige variabel.
  • ContextVariable2: Value2, ... – valgfri. Yderligere kontekstafhængige variabler, der skal oprettes eller opdateres, og deres værdier.

Eksempler

Formel Beskrivelse Resultat
UpdateContext( { Counter: 1 } ) Opretter eller ændrer den kontekstafhængige variabel Counter og indstiller dens værdi til 1. Counter har værdien 1. Du kan henvise til variablen ved at bruge navnet Counter i en formel.
UpdateContext( { Counter: 2 } ) Indstiller værdien af den kontekstafhængige variabel Counter i det forrige eksempel til 2. Counter har værdien 2.
UpdateContext( { Name: "Lily", Score: 10 } ) Opretter eller ændrer de kontekstafhængige variabler Name og Score og indstiller deres værdier til henholdsvis Lily og 10. Name har værdien Lily, og Score har værdien 10.
UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } ) Opretter eller ændrer den kontekstafhængige variabel Person og indstiller dens værdi til en post. Posten indeholder to kolonner med navnet Name og Address. Værdien af kolonnen Name er Milton, og værdien af kolonnen Address er 1 Main St. Person har værdien af posten { Navn: "Milton", Adresse: "1 Main St" } }.

Brug navnet Person for at henvise til hele posten, eller brug Person.Name eller Person.Address for at henvise til en enkelt kolonne i posten.
UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } ) Fungerer sammen med funktionen Patch til at opdatere den kontekstafhængige variabel Person ved at indstille værdien af kolonnen Address til 2 Main St. Person har nu samme værdi som posten { Navn: "Milton", Adresse: "2 Main St" } }.

Eksempel trin for trin 1

  1. Navngiv standardskærmbilledet Source, tilføj et nyt skærmbillede, og navngiv det Target.

  2. På skærmbilledet Source skal du tilføje to knapper og indstille deres Text-egenskab, så den ene hedder English og den anden Spanish.

  3. Indstil egenskaben OnSelect af knappen English til dette udtryk:
    Navigate(Target, ScreenTransition.Fade, {Language:"English"})

  4. Indstil egenskaben OnSelect af knappen Spanish til dette udtryk:
    Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})

  5. På skærmbilledet Target skal du tilføje en etiket og indstille dens Text-egenskab til dette udtryk:
    If(Language="English", "Hello!", "Hola!")

  6. På skærmbilledet Target skal du vælge Shapes på fanen Insert og derefter vælge pilen Tilbage.

  7. Angiv egenskaben OnSelect for pilen Tilbage til denne formel:
    Navigate(Source, ScreenTransition.Fade)

  8. Tryk på F5 på skærmbilledet Source, og vælg derefter knappen for et af sprogene.

    På skærmbilledet Target vises etiketten på det sprog, der svarer til den knap, du valgte.

  9. Vælg pilen Tilbage for at vende tilbage til skærmbilledet Source, og vælg derefter knappen for det andet sprog.

    På skærmbilledet Target vises etiketten på det sprog, der svarer til den knap, du valgte.

  10. Tryk på Esc for at vende tilbage til standardarbejdsområdet.

Eksempel trin for trin 2

  1. Åbn den lærredapp, hvor du vil bruge denne formel.
  2. Tilføj en ny tom skærm ved at vælge Ny skærm på kommandolinjen.
  3. Tilføj en knap, og angiv dens egenskab OnSelect til denne formel:
    UpdateContext( { Name: "Lily", Score: 10 } )