Funkcja UpdateContext w usłudze PowerAppsUpdateContext function in PowerApps

Tworzy lub aktualizuje zmienne kontekstowe bieżącego ekranu.Creates or updates context variables of the current screen.

PrzeglądOverview

Za pomocą funkcji UpdateContext można utworzyć zmienną kontekstową tymczasowo przechowującą informację, taką jak liczba wybrań przez użytkownika przycisku lub wynik operacji danych.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.

Zakres zmiennych kontekstowych jest ograniczony do ekranu, co oznacza, że nie można utworzyć formuły, która odwołuje się do zmiennej kontekstowej na innym ekranie.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. Jeśli używano innego narzędzia do programowania, można traktować zmienne kontekstowe jak zmienne lokalne.If you've used another programming tool, you can think of a context variable as similar to a local variable. Do pracy ze zmiennymi globalnymi, które są dostępne w całej aplikacji, służy funkcja Set.Use the Set function to work with global variables that are available throughout your app.

Usługa PowerApps jest oparta na formułach, które automatycznie dokonują ponownych obliczeń w miarę interakcji użytkownika z aplikacją.PowerApps are based on formulas that automatically recalculate as the user interacts with an app. Zmienne kontekstowe nie zapewniają tej zalety, przez co utworzenie i zrozumienie aplikacji może być trudniejsze.Context variables don't offer this benefit and can make your app harder to create and understand. Przed użyciem zmiennej kontekstowej zapoznaj się z informacjami o pracy ze zmiennymi.Before you use a context variable, review working with variables.

OpisDescription

Aby utworzyć lub zaktualizować zmienną kontekstową, przekaż jeden rekord do funkcji UpdateContext.To create or update a context variable, pass a single record to the UpdateContext function. W każdym rekordzie określ nazwę kolumny, która definiuje lub jest zgodna z nazwą zmiennej, oraz wartość, która ma zostać ustawiona dla tej zmiennej.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.

  • Jeśli określisz nazwę wcześniej zdefiniowanej zmiennej, funkcja UpdateContext ustawi dla tej zmiennej wskazaną wartość.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.
  • Jeśli określisz nazwę zmiennej, która jeszcze nie istnieje, funkcja UpdateContext utworzy zmienną o takiej nazwie i ustawi dla niej wskazaną wartość.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.
  • Jeśli wcześniej zdefiniowano zmienną, ale nie zostanie ona określona w tej konkretnej formule z funkcją UpdateContext, jej wartość się nie zmieni.If you've previously defined a variable but don't specify it in this particular UpdateContext formula, its value remains the same.

Zmienne kontekstowe są tworzone niejawnie za pomocą funkcji UpdateContext lub funkcji Navigate.Context variables are implicitly created by using the UpdateContext or Navigate function. Nie jest wymagana żadna jawna deklaracja.There is no explicit declaration required. Po usunięciu wszystkich odwołań do zmiennej kontekstowej w funkcjach UpdateContext i Navigate dana zmienna kontekstowa przestanie istnieć.If you remove all the UpdateContext and Navigate references to a context variable, then that context variable will cease to exist. Aby wyczyścić zmienną, ustaw jej wartość na wynik funkcji Blank.To clear a variable set its value to the result of the Blank function.

Wartości zmiennych, ich definicje i zastosowania można sprawdzić w widoku Zmienne, który jest dostępny z poziomu menu Plik w środowisku tworzenia.You can see your variables' values, definitions, and uses with the Variables view under the File menu in the authoring environment.

Aby odwołać się do zmiennej kontekstowej w formule, użyj nazwy kolumny zmiennej.You reference a context variable in a formula by using the variable's column name. Na przykład formuła UpdateContext( { ShowLogo: true } ) tworzy zmienną kontekstową o nazwie ShowLogo i ustawia dla niej wartość true.For example, UpdateContext( { ShowLogo: true } ) creates a context variable named ShowLogo and sets its value to true. Następnie można użyć wartości tej zmiennej kontekstowej, korzystając z nazwy ShowLogo w formule.You can then use the value of this context variable by using the name ShowLogo in a formula. Zmienną ShowLogo można napisać jako formułę dla właściwości Visible kontrolki obrazu, aby pokazywać lub ukrywać tę kontrolkę na podstawie tego, czy wartością zmiennej kontekstowej jest true, czy 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 przedstawiono w przykładach w dalszej części tego tematu, zmienne kontekstowe mogą zawierać kilka rodzajów informacji, w tym następujące:As the examples later in this topic show, context variables can hold several kinds of information, including these:

  • pojedyncza wartośća single value
  • rekorda record
  • tabelaa table
  • odwołanie do obiektuan object reference
  • wynik dowolnej formułyany result from a formula

Zmienna kontekstowa przechowuje wartość do czasu zamknięcia aplikacji.A context variable holds its value until the app is closed. W przypadku zdefiniowania zmiennej kontekstowej i ustawienia jej wartości na konkretnym ekranie te informacje istnieją nawet wtedy, gdy użytkownik przejdzie do innego ekranu.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 zamknięciu aplikacji wartość zmiennej kontekstowej zostanie utracona i musi zostać ponownie utworzona po ponownym załadowaniu aplikacji.Once the app is closed, the context variable's value will be lost and must be recreated when the app is loaded again.

Zakres każdej zmiennej kontekstowej jest ograniczony do ekranu.Every context variable is scoped to a screen. Jeśli chcesz zdefiniować zmienną kontekstową na jednym ekranie, a następnie modyfikować ją na innym, musisz utworzyć formułę opartą na funkcji 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. Ewentualnie użyj zmiennej globalnej.Or use a global variable.

Funkcja UpdateContext nie zwraca żadnej wartości i można jej używać wyłącznie w formułach zachowania.UpdateContext has no return value, and you can use it only within a behavior formula.

SkładniaSyntax

UpdateContext( AktualizowanyRekord )UpdateContext( UpdateRecord )

  • AktualizowanyRekord — wymagane.UpdateRecord – Required. Rekord, który zawiera nazwę co najmniej jednej kolumny i wartość dla tej kolumny.A record that contains the name of at least one column and a value for that column. Dla każdej określonej kolumny i wartości jest tworzona lub aktualizowana zmienna kontekstowa.A context variable is created or updated for each column and value that you specify.

UpdateContext( { ZmiennaKontekstowa1: Wartość1 [, ZmiennaKontekstowa2: Wartość2 [, ... ] ] } )UpdateContext( { ContextVariable1: Value1 [, ContextVariable2: Value2 [, ... ] ] } )

  • ZmiennaKontekstowa1 — wymagane.ContextVariable1 - Required. Nazwa zmiennej kontekstowej do utworzenia lub zaktualizowania.The name of a context variable to create or update.
  • Wartość1 — wymagane.Value1 - Required. Wartość do przypisania zmiennej kontekstowej.The value to assign to the context variable.
  • ZmiennaKontekstowa2: Wartość2, ... — opcjonalne.ContextVariable2: Value2, ... - Optional. Dodatkowe nazwy zmiennych kontekstowych do utworzenia lub zaktualizowania i ich wartości.Additional context variables to create or update and their values.

PrzykładyExamples

FormułaFormula OpisDescription WynikResult
UpdateContext( { Counter: 1 } )UpdateContext( { Counter: 1 } ) Tworzy lub modyfikuje zmienną kontekstową Counter, ustawiając dla niej wartość 1.Creates or modifies the context variable Counter, setting its value to 1. Zmienna Counter ma wartość 1.Counter has the value 1. Do tej zmiennej można odwoływać się w formule przy użyciu nazwy Licznik.You can reference that variable by using the name Counter in a formula.
UpdateContext( { Counter: 2 } )UpdateContext( { Counter: 2 } ) Ustawia dla zmiennej kontekstowej Counter z poprzedniego przykładu wartość 2.Sets the value of the Counter context variable from the previous example to 2. Zmienna Counter ma wartość 2.Counter has the value 2.
UpdateContext( { Name: "Lily", Score: 10 } )UpdateContext( { Name: "Lily", Score: 10 } ) Tworzy lub modyfikuje zmienne kontekstowe Name i Score, ustawiając dla nich wartości Lily i 10.Creates or modifies the context variables Name and Score, setting their values to Lily and 10 respectively. Zmienna Name ma wartość Lily, a zmienna Score ma wartość 10.Name has the value Lily, and Score has the value 10.
UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } )UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } ) Tworzy lub modyfikuje zmienną kontekstową Person, ustawiając dla niej wartość rekordu.Creates or modifies the context variable Person, setting its value to a record. Rekord zawiera dwie kolumny o nazwach Name i Address.The record contains two columns, named Name and Address. Wartość kolumny Name to Milton, a wartość kolumny Address to 1 Main St.The value of the Name column is Milton, and the value of the Address column is 1 Main St. Zmienna Person ma wartość rekordu { Name: "Milton", Address: "1 Main St" } }.Person has the value of record { Name: "Milton", Address: "1 Main St" } }.

Odwołania można wykonywać względem całego rekordu za pomocą nazwy Person lub względem pojedynczej kolumny tego rekordu za pomocą nazwy Person.Name lub Person.Address.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( { Person: Patch( Person, {Address: "2 Main St" } ) } )UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } ) Współdziała z funkcją Patch w celu zaktualizowania zmiennej kontekstowej Person przez ustawienie dla kolumny Address wartości 2 Main St.Works with the Patch function to update the Person context variable by setting the value of the Address column to 2 Main St. Zmienna Person ma teraz wartość rekordu { Name: "Milton", Address: "2 Main St" } }.Person now has the value of record { Name: "Milton", Address: "2 Main St" } }.

Przykład krok po krokuStep-by-step example

  1. Domyślnemu ekranowi nadaje nazwę Source, dodaje kolejny ekran i nadaje mu nazwę Target.Name the default screen Source, add another screen, and name it Target.
  2. Na ekranie Source dodaje dwa przyciski i ustawia dla ich właściwości Text wartości English i Spanish.On the Source screen, add two buttons, and set their Text properties so that one says English and the other says Spanish.
  3. Dla właściwości OnSelect przycisku English ustawia następujące wyrażenie:Set the OnSelect property of the English button to this expression:
    Navigate(Target, ScreenTransition.Fade, {Language:"English"})Navigate(Target, ScreenTransition.Fade, {Language:"English"})
  4. Dla właściwości OnSelect przycisku Spanish ustawia następujące wyrażenie:Set the OnSelect property of the Spanish button to this expression:
    Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})
  5. Na ekranie Target dodaje etykietę i jako wartość jej właściwości Text ustawia to wyrażenie: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 ekranie Target wybierz pozycję Kształty na karcie Wstawianie, a następnie wybierz strzałkę Wstecz.On the Target screen, select Shapes on the Insert tab, and then select the Back arrow.
  7. Dla właściwości OnSelect strzałki Wstecz ustaw następującą formułę:Set the Back arrow's OnSelect property to this formula:
    Navigate(Source, ScreenTransition.Fade)Navigate(Source, ScreenTransition.Fade)
  8. Na ekranie Source naciśnij klawisz F5, a następnie wybierz przycisk jednego z języków.From the Source screen, press F5, and then select the button for either language.

    Na ekranie Target pojawi się etykieta w języku odpowiadającym wybranemu przyciskowi.On the Target screen, the label appears in the language that corresponds to the button that you selected.

  9. Wybierz strzałkę Wstecz, aby powrócić do ekranu Source, a następnie wybierz przycisk drugiego języka.Select the Back arrow to return to the Source screen, and then select the button for the other language.

    Na ekranie Target pojawi się etykieta w języku odpowiadającym wybranemu przyciskowi.On the Target screen, the label appears in the language that corresponds to the button that you selected.

  10. Naciśnij klawisz Esc, aby powrócić do domyślnego obszaru roboczego.Press Esc to return to the default workspace.

Inny przykładAnother example