Funktionen UpdateContext

Gäller: Arbetsyteappar

Skapar eller uppdaterar sammanhangsvariabler för den aktuella skärmen.

Översikt

Använd funktionen UpdateContext för att skapa en sammanhangsvariabel som tillfälligt lagrar en del av informationen, till exempel hur många gånger som användaren har valt en knapp eller resultatet av en dataåtgärd.

Sammanhangsvariabler är begränsade till en skärm, vilket innebär att du inte kan skapa en formel som refererar till en sammanhangsvariabel på en annan skärm. Om du har använt ett annat programmeringsverktyg kan du tänka att en sammanhangsvariabel liknar en lokal variabel. Använd funktionen Set att den arbetar med globala variabler som är tillgängliga i hela ditt program.

Power Apps baseras på formler som automatiskt omberäknas när användaren interagerar med ett program. Sammanhangsvariabler har inte denna fördel och det kan göra ditt program svårare att skapa och förstå. Innan du använder en sammanhangsvariabel bör du läsa Arbeta med variabler.

Beskrivning

För att skapa eller uppdatera en sammanhangsvariabel skickar du en enda post till funktionen UpdateContext. I varje post anger du namnet på en kolumn, vilken definierar eller matchar namnet på variabeln, samt det värde som du vill ange variabeln till.

  • Om du anger namnet på en variabel som du tidigare har definierat, anger UpdateContext värdet för variabeln till det värde som du angav.
  • Om du anger namnet på en variabel som inte finns ännu, skapar UpdateContext en variabel med samma namn och anger värdet för variabeln till värdet som du angav.
  • Om du tidigare har definierat en variabel, men inte anger den i den särskilda UpdateContext-formeln, är dess värde fortfarande samma.

Kontextvariabler skapas implicit med hjälp av funktionen UpdateContext eller Navigate. Någon uttrycklig deklaration krävs inte. Om du tar bort alla UpdateContext- och Navigate-referenser till en kontextvariabel, så upphör kontextvariabeln att existera. Om du vill ta bort en variabel anger du dess värde som resultatet av funktionen Blank.

Du kan se dina variablers värden, definitioner och användning i vyn Variabler som du hittar på miljöns Arkiv-meny.

Du refererar till en sammanhangsvariabel i en formel med hjälp av variabelns kolumnnamn. Till exempel skapar UpdateContext( { ShowLogo: true } ) en kontextvariabel med nemnet ShowLogo och anger värdet till true. Du kan sedan använda värdet för den här sammanhangsvariabeln med hjälp av namnet ShowLogo i en formel. Du kan skriva ShowLogo som formel för egenskapen Visible för en bildkontroll, samt visa eller dölja att kontrollen baseras på om värdet för sammanhangsvariabeln är true eller false.

I exemplen senare i detta avsnitt visas att sammanhangsvariabler kan innehålla flera olika typer av information, inklusive följande:

  • ett enstaka värde
  • en post
  • en tabell
  • en objektreferens
  • ett resultat från en formel

En sammanhangsvariabel sparar värdet tills programmet stängs. Om du definierar en sammanhangsvariabel och anger värdet på en viss skärm, bevaras informationen även om användaren växlar till en annan skärm. När programmet är stängd går kontextvariabelns värde förlorat, och måste återskapas när programmet läses in igen.

Varje sammanhangsvariabel är begränsad till en skärm. Om du vill definiera en sammanhangsvariabel på en skärm och ändra variabeln från en annan skärm, måste du skapa en formel som baseras på funktionen Navigate. Eller använd en global variabel.

UpdateContext har inget returvärde och du kan endast använda den inom en beteendeformel.

Syntax

UpdateContext( UpdateRecord )

  • UpdateRecord – Krävs. En post som innehåller namnet på minst en kolumn och ett värde för den kolumnen. En sammanhangsvariabel skapas eller uppdateras för varje kolumn och värde som du anger.

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

  • ContextVariable1 – Krävs. Namnet på en sammanhangsvariabel som ska skapas eller uppdateras.
  • Value1 – Krävs. Värdet som tilldelas sammanhangsvariabeln.
  • ContextVariable2: Value2, ... – Valfritt. Ytterligare sammanhangsvariabler för att skapa eller uppdatera och deras värden.

Exempel

Formel Beskrivning Resultat
UpdateContext( { Counter: 1 } ) Skapar eller ändrar sammanhangsvariabeln Counter och anger värdet till 1. Counter har värdet 1. Du kan referera till variabeln genom att använda namnet Counter i en formel.
UpdateContext( { Counter: 2 } ) Anger värdet för sammanhangsvariabeln Counter från föregående exempel till 2. Counter har värdet 2.
UpdateContext( { Name: "Lily", Score: 10 } ) Skapar eller ändrar sammanhangsvariablerna Name och Score, samt anger deras värden till Lily respektive 10. Name har värdet Lily och Score har värdet 10.
UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } ) Skapar eller ändrar sammanhangsvariabeln Person och anger värdet till en post. Posten innehåller två kolumner, med namnen Name och Address. Värdet för kolumnen Name är Milton och värdet för kolumnen Address är 1 Main St. Person har värdet av posten { Name: "Milton", Address: "1 Main St" } }.

Referera till den här posten som helhet med namnet Person, eller referera till en enskild kolumn i posten med Person.Name eller Person.Address.
UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } ) Använder funktionen Patch för att uppdatera sammanhangsvariabeln Person, genom att ange värdet för kolumnen Address till 2 Main St. Person har nu postvärdet { Name: "Milton", Address: "2 Main St" } }.

Detaljerat exempel 1

  1. Ge standardskärmen namnet Source, lägg till en ny skärm och ge den namnet Target.

  2. På skärmen Source lägger du till två knappar och anger deras egenskaper för Text så att en är English och den andra är Spanish.

  3. Ange egenskapen OnSelect för knappen English till det här uttrycket:
    Navigate(Target, ScreenTransition.Fade, {Language:"English"})

  4. Ange egenskapen OnSelect för knappen Spanish till det här uttrycket:
    Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})

  5. På skärmen Target lägger du till en etikett och anger egenskapen för Text till det här uttrycket:
    If(Language="English", "Hello!", "Hola!")

  6. På skärmen Target väljer du Shapes på fliken Infoga och väljer sedan bakåtpilen.

  7. Ange bakåtpilens egenskap OnSelect till den här formeln:
    Navigate(Source, ScreenTransition.Fade)

  8. På skärmen Source trycker du på F5 och väljer sedan knappen för något av språken.

    På skärmen Target visas etiketten på det språk som motsvarar knappen som du har valt.

  9. Välj bakåtpilen om du vill gå tillbaka till skärmen Source och klicka sedan på knappen för det andra språket.

    På skärmen Target visas etiketten på det språk som motsvarar knappen som du har valt.

  10. Återgå till standardarbetsytan genom att trycka på Esc.

Detaljerat exempel 2

  1. Öppna arbetsyteappen där du vill använda den här formeln.
  2. Lägg till en ny tom skärm genom att välja Ny skärm i kommandofältet.
  3. Lägg till en knapp och ge dess egenskap OnSelect följande formel:
    UpdateContext( { Name: "Lily", Score: 10 } )