Funkce UpdateContext v PowerAppsUpdateContext function in PowerApps

Vytvoří nebo zaktualizuje kontextové proměnné aktuální obrazovky.Creates or updates context variables of the current screen.

PřehledOverview

Funkce UpdateContext umožňuje vytvořit kontextovou proměnnou, ve které se dočasně uchovává určitý údaj, například počet, kolikrát uživatel vybral nějaké tlačítko, nebo výsledek operace s daty.Use the UpdateContext function to create a context variable, which temporarily holds a piece of information, such as the number of times the user has selected a button or the result of a data operation.

Kontextové proměnné mají jako svůj obor obrazovku. To znamená, že nemůžete vytvořit vzorec, který odkazuje na kontextovou proměnnou na jiné obrazovce.Context variables are scoped to a screen, which means that you can't build a formula that refers to a context variable on another screen. Pokud jste dříve používali jiný programovací nástroj, můžete kontextovou proměnnou považovat za obdobu místní proměnné.If you've used another programming tool, you can think of a context variable as similar to a local variable. Pro práci s globálními proměnnými, které jsou dostupné v celé vaší aplikaci, použijte funkci Set.Use the Set function to work with global variables that are available throughout your app.

Základem PowerApps jsou vzorce, které se automaticky přepočítávají během interakce uživatele s aplikací.PowerApps are based on formulas that automatically recalculate as the user interacts with an app. Kontextové proměnné tuto výhodu nenabízejí a můžou znesnadnit vytvoření a pochopení vaší aplikace.Context variables don't offer this benefit and can make your app harder to create and understand. Před použitím kontextové proměnné si přečtěte článek o práci s proměnnými.Before you use a context variable, review working with variables.

PopisDescription

Pokud chcete vytvořit nebo aktualizovat kontextovou proměnnou, předejte jeden záznam funkci UpdateContext.To create or update a context variable, pass a single record to the UpdateContext function. V každém záznamu zadejte název sloupce, který definuje název proměnné nebo mu odpovídá, a hodnotu, na kterou chcete proměnnou nastavit.In each record, specify the name of a column, which defines or matches the name of the variable, and the value to which you want to set that variable.

  • Pokud zadáte název proměnné, který už jste definovali dříve, nastaví funkce UpdateContext tuto proměnnou na hodnotu, kterou zadáte.If you specify the name of a variable that you've previously defined, UpdateContext sets the value of the variable to the value that you specify.
  • Pokud zadáte název proměnné, který zatím ještě neexistuje, vytvoří funkce UpdateContext proměnnou s tímto názvem a nastaví ji na zadanou hodnotu.If you specify the name of a variable that doesn't yet exist, UpdateContext creates a variable with that name and sets the value of that variable to the value that you specify.
  • Pokud jste dříve definovali nějakou proměnnou, ale nezadáte ji v aktuálním vzorci UpdateContext, její hodnota zůstane stejná.If you've previously defined a variable but don't specify it in this particular UpdateContext formula, its value remains the same.

Kontextové proměnné se implicitně vytvářejí pomocí funkce UpdateContext nebo funkce Navigate.Context variables are implicitly created by using the UpdateContext or Navigate function. Nevyžaduje se žádná explicitní deklarace.There is no explicit declaration required. Pokud odeberete všechny odkazy funkcí UpdateContext a Navigate na kontextovou proměnnou, pak tato kontextová proměnná přestane existovat.If you remove all the UpdateContext and Navigate references to a context variable, then that context variable will cease to exist. Proměnnou vymažete tak, že její hodnotu nastavíte na výsledek funkce Blank.To clear a variable set its value to the result of the Blank function.

Hodnoty, definice a použití proměnných si můžete prohlédnout pomocí zobrazení Proměnné v nabídce Soubor ve vývojovém prostředí.You can see your variables' values, definitions, and uses with the Variables view under the File menu in the authoring environment.

Na kontextové proměnné se ve vzorci odkazuje pomocí názvu sloupce proměnné.You reference a context variable in a formula by using the variable's column name. Vzorec UpdateContext({ZobrazitLogo:true}) například vytvoří kontextovou proměnnou s názvem ZobrazitLogo a nastaví její hodnotu na true.For example, UpdateContext( { ShowLogo: true } ) creates a context variable named ShowLogo and sets its value to true. Potom můžete hodnotu této kontextové proměnné použít ve vzorci pomocí názvu ZobrazitLogo.You can then use the value of this context variable by using the name ShowLogo in a formula. Můžete například zapsat proměnnou ZobrazitLogo jako vzorec pro vlastnost Visible u ovládacího prvku obrázku a zobrazit nebo skrýt tento ovládací prvek podle toho, jestli má tato kontextová proměnná hodnotu truenebo false.You can write ShowLogo as the formula for the Visible property of an image control and show or hide that control based on whether the value of the context variable is true or false.

Jak ukazují příklady dále v tomto tématu, můžou kontextové proměnné uchovávat několik druhů informací, mezi které patří:As the examples later in this topic show, context variables can hold several kinds of information, including these:

  • Jedna hodnotaa single value
  • Záznama record
  • Tabulkaa table
  • Odkaz na objektan object reference
  • Jakýkoli výsledek vzorceany result from a formula

Kontextová proměnná uchovává svou hodnotu tak dlouho, dokud se aplikace nezavře.A context variable holds its value until the app is closed. Pokud nadefinujete kontextovou proměnnou, nastavíte její hodnotu na konkrétní obrazovce a uživatel přepne na jinou obrazovku, zůstanou nastavené informace beze změn.If you define a context variable and set its value on a particular screen, that information remains intact even if the user switches to a different screen. Po zavření aplikace se hodnota kontextové proměnné ztratí a musí se znovu vytvořit při opětovném načtení aplikace.Once the app is closed, the context variable's value will be lost and must be recreated when the app is loaded again.

Každá kontextová proměnná má jako svůj obor konkrétní obrazovku.Every context variable is scoped to a screen. Pokud chcete definovat kontextovou proměnnou na jedné obrazovce a upravit ji z jiné obrazovky, musíte vytvořit vzorec založený na funkci Navigate.If you want to define a context variable on one screen and modify that variable from another screen, you must build a formula that's based on the Navigate function. Případně můžete použít globální proměnnou.Or use a global variable.

Funkce UpdateContext nemá žádnou návratovou hodnotu a můžete ji použít jenom ve vzorcích chování.UpdateContext has no return value, and you can use it only within a behavior formula.

SyntaxeSyntax

UpdateContext(AktualizovanýZáznam)UpdateContext( UpdateRecord )

  • AktualizovanýZáznam – povinný argument.UpdateRecord – Required. Záznam, který obsahuje název aspoň jednoho sloupce a hodnotu pro každý uvedený sloupec.A record that contains the name of at least one column and a value for that column. Kontextová proměnná se vytvoří nebo zaktualizuje pro každý zadaný sloupec a hodnotu.A context variable is created or updated for each column and value that you specify.

UpdateContext({KontextováProměnná1:Hodnota1[;KontextováProměnná2:Hodnota2[;...]]})UpdateContext( { ContextVariable1: Value1 [, ContextVariable2: Value2 [, ... ] ] } )

  • KontextováProměnná1 – povinný argument.ContextVariable1 - Required. Název kontextové proměnné, která se má vytvořit nebo zaktualizovat.The name of a context variable to create or update.
  • Hodnota1 – povinný argument.Value1 - Required. Hodnota, která se má této globální proměnné přiřadit.The value to assign to the context variable.
  • KontextováProměnná2:Hodnota2;... – volitelné argumenty.ContextVariable2: Value2, ... - Optional. Další kontextové proměnné, které chcete vytvořit nebo aktualizovat, a jejich hodnoty.Additional context variables to create or update and their values.

PříkladyExamples

VzorecFormula PopisDescription VýsledekResult
UpdateContext({ Čítač: 1 })UpdateContext( { Counter: 1 } ) Vytvoří nebo změní kontextovou proměnnou Čítač a nastaví její hodnotu na 1.Creates or modifies the context variable Counter, setting its value to 1. Proměnná Čítač má hodnotu 1.Counter has the value 1. Na tuto proměnnou můžete odkázat pomocí názvu Čítač ve vzorci.You can reference that variable by using the name Counter in a formula.
UpdateContext({ Čítač: 2 })UpdateContext( { Counter: 2 } ) Nastaví hodnotu kontextové proměnné Čítač z předchozího příkladu na 2.Sets the value of the Counter context variable from the previous example to 2. Proměnná Čítač má hodnotu 2.Counter has the value 2.
UpdateContext({ Jméno: "Lenka"; Skóre: 10 })UpdateContext( { Name: "Lily", Score: 10 } ) Vytvoří nebo upraví kontextové proměnné Jméno a Skóre a nastaví jejich hodnoty na Lenka a 10.Creates or modifies the context variables Name and Score, setting their values to Lily and 10 respectively. Proměnná Jméno má hodnotu Lenka a proměnná Skóre má hodnotu 10.Name has the value Lily, and Score has the value 10.
UpdateContext({ Osoba: { Jméno: "Novák";Adresa: "Hlavní ulice 1" } })UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } ) Vytvoří nebo změní kontextovou proměnnou Osoba a nastaví její hodnotu na záznam.Creates or modifies the context variable Person, setting its value to a record. Tento záznam obsahuje dva sloupce s názvy Jméno a Adresa.The record contains two columns, named Name and Address. Hodnota sloupce Jméno je Novák a hodnota sloupce Adresa je Hlavní ulice 1.The value of the Name column is Milton, and the value of the Address column is 1 Main St. Proměnná Osoba má hodnotu záznamu { Jméno: "Novák";Adresa: "Hlavní ulice 1" } }.Person has the value of record { Name: "Milton", Address: "1 Main St" } }.

Na tento záznam můžete odkázat jako na celek pomocí názvu Osoba, nebo na individuální sloupec tohoto záznamu pomocí názvu Osoba.Jméno nebo Osoba.Adresa.Reference this record as a whole with the name Person, or reference an individual column of this record with Person.Name or Person.Address.
UpdateContext({ Osoba:Patch( Osoba; {Adresa: "Hlavní ulice 2" } )} )UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } ) V součinnosti s funkcí Patch aktualizuje kontextovou proměnnou Osoba nastavením hodnoty sloupce Adresa na Hlavní ulice 2.Works with the Patch function to update the Person context variable by setting the value of the Address column to 2 Main St. Proměnná Osoba teď obsahuje hodnotu záznamu { Jméno: "Novák";Adresa: "Hlavní ulice 2" } }.Person now has the value of record { Name: "Milton", Address: "2 Main St" } }.

Podrobný příkladStep-by-step example

  1. Dejte výchozí obrazovce název Zdroj, přidejte další obrazovku a dejte jí název Cíl.Name the default screen Source, add another screen, and name it Target.
  2. Na obrazovce Zdroj přidejte dvě tlačítka a nastavte jejich vlastnosti Text na hodnoty English a Español.On the Source screen, add two buttons, and set their Text properties so that one says English and the other says Spanish.
  3. Vlastnost OnSelect tlačítka English nastavte na tento výraz:Set the OnSelect property of the English button to this expression:
    Navigate(Cíl;ScreenTransition.Fade,{Language:"English"})Navigate(Target, ScreenTransition.Fade, {Language:"English"})
  4. Vlastnost OnSelect tlačítka Español nastavte na tento výraz:Set the OnSelect property of the Spanish button to this expression:
    Navigate(Cíl;ScreenTransition.Fade,{Language:"Español"})Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})
  5. Na obrazovce Cíl přidejte popisek a nastavte jeho vlastnost Text na tento výraz:On the Target screen, add a label, and set its Text property to this expression:
    If(Language="English";"Hello";"Hola")If(Language="English", "Hello!", "Hola!")
  6. Na obrazovce Cíl vyberte na kartě Vložit možnost Tvary a pak vyberte tlačítko Zpět.On the Target screen, select Shapes on the Insert tab, and then select the Back arrow.
  7. Vlastnost OnSelect tlačítka Zpět nastavte na tento vzorec:Set the Back arrow's OnSelect property to this formula:
    Navigate(Zdroj; ScreenTransition.Fade)Navigate(Source, ScreenTransition.Fade)
  8. Na obrazovce Zdroj stiskněte klávesu F5 a pak klikněte na tlačítko pro některý jazyk.From the Source screen, press F5, and then select the button for either language.

    Na obrazovce Cíl se zobrazí popisek v jazyce odpovídajícím vybranému tlačítku.On the Target screen, the label appears in the language that corresponds to the button that you selected.

  9. Výběrem šipky Zpět se vraťte na obrazovku Zdroj a pak vyberte tlačítko pro druhý jazyk.Select the Back arrow to return to the Source screen, and then select the button for the other language.

    Na obrazovce Cíl se zobrazí popisek v jazyce odpovídajícím vybranému tlačítku.On the Target screen, the label appears in the language that corresponds to the button that you selected.

  10. Stisknutím klávesy Esc se vraťte do výchozího pracovního prostoru.Press Esc to return to the default workspace.

Další příkladAnother example