Funkcja UpdateContext

Dotyczy: aplikacje kanwy

Tworzy lub aktualizuje zmienne kontekstowe bieżącego ekranu.

Omówienie

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.

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. Jeśli używano innego narzędzia do programowania, można traktować zmienne kontekstowe jak zmienne lokalne. Do pracy ze zmiennymi globalnymi, które są dostępne w całej aplikacji, służy funkcja Set.

Power Apps są oparte na formułach, które automatycznie dokonują ponownych obliczeń w miarę interakcji użytkownika z aplikacją. Zmienne kontekstowe nie zapewniają tej zalety, przez co utworzenie i zrozumienie aplikacji może być trudniejsze. Przed użyciem zmiennej kontekstowej zapoznaj się z informacjami o pracy ze zmiennymi.

Opis

Aby utworzyć lub zaktualizować zmienną kontekstową, przekaż jeden rekord do funkcji UpdateContext. 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.

  • Jeśli określisz nazwę wcześniej zdefiniowanej zmiennej, funkcja UpdateContext ustawi dla tej zmiennej wskazaną wartość.
  • Jeśli określisz nazwę zmiennej, która jeszcze nie istnieje, funkcja UpdateContext utworzy zmienną o takiej nazwie i ustawi dla niej wskazaną wartość.
  • Jeśli wcześniej zdefiniowano zmienną, ale nie zostanie ona określona w tej konkretnej formule z funkcją UpdateContext, jej wartość się nie zmieni.

Zmienne kontekstowe są tworzone niejawnie za pomocą funkcji UpdateContext lub funkcji Navigate. Nie jest wymagana żadna jawna deklaracja. Po usunięciu wszystkich odwołań do zmiennej kontekstowej w funkcjach UpdateContext i Navigate dana zmienna kontekstowa przestanie istnieć. Aby wyczyścić zmienną, ustaw jej wartość na wynik funkcji Blank.

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.

Aby odwołać się do zmiennej kontekstowej w formule, użyj nazwy kolumny zmiennej. Na przykład formuła UpdateContext( { ShowLogo: true } ) tworzy zmienną kontekstową o nazwie ShowLogo i ustawia dla niej wartość prawda. Następnie można użyć wartości tej zmiennej kontekstowej, korzystając z nazwy ShowLogo w formule. 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 prawda, czy fałsz.

Jak przedstawiono w przykładach w dalszej części tego tematu, zmienne kontekstowe mogą zawierać kilka rodzajów informacji, w tym następujące:

  • pojedyncza wartość
  • rekord
  • tabela
  • odwołanie do obiektu
  • wynik dowolnej formuły

Zmienna kontekstowa przechowuje wartość do czasu zamknięcia aplikacji. 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. Po zamknięciu aplikacji wartość zmiennej kontekstowej zostanie utracona i musi zostać ponownie utworzona po ponownym załadowaniu aplikacji.

Zakres każdej zmiennej kontekstowej jest ograniczony do ekranu. Jeśli chcesz zdefiniować zmienną kontekstową na jednym ekranie, a następnie modyfikować ją na innym, musisz utworzyć formułę opartą na funkcji Navigate. Ewentualnie użyj zmiennej globalnej.

Funkcja UpdateContext nie zwraca żadnej wartości i można jej używać wyłącznie w formułach zachowania.

Składnia

UpdateContext( UpdateRecord )

  • UpdateRecord – wymagane. Rekord, który zawiera nazwę co najmniej jednej kolumny i wartość dla tej kolumny. Dla każdej określonej kolumny i wartości jest tworzona lub aktualizowana zmienna kontekstowa.

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

  • ContextVariable1 - wymagane. Nazwa zmiennej kontekstowej do utworzenia lub zaktualizowania.
  • Value1 - wymagane. Wartość do przypisania zmiennej kontekstowej.
  • ContextVariable2: Value2, ... - opcjonalne. Dodatkowe nazwy zmiennych kontekstowych do utworzenia lub zaktualizowania i ich wartości.

Przykłady

Wzór Opis Wynik
UpdateContext( { Counter: 1 } ) Tworzy lub modyfikuje zmienną kontekstową Licznik, ustawiając dla niej wartość 1. Licznik ma wartość 1. Do tej zmiennej można odwoływać się w formule przy użyciu nazwy Licznik.
UpdateContext( { Counter: 2 } ) Ustawia dla zmiennej kontekstowej Licznik z poprzedniego przykładu wartość 2. Licznik ma wartość 2.
UpdateContext( { Name: "Lily", Score: 10 } ) Tworzy lub modyfikuje zmienne kontekstowe Imię i Wynik, ustawiając dla nich wartości Lily i 10. Zmienna Imię ma wartość Lily, a zmienna Wynik ma wartość 10.
UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } ) Tworzy lub modyfikuje zmienną kontekstową Osoba, ustawiając dla niej wartość rekordu. Rekord zawiera dwie kolumny o nazwach Imię i Adres. Wartość kolumny Imię to Milton, a wartość kolumny Adres to 1 Main St. Person ma wartośc rekordu { Name: "Milton", Address: "1 Main St" } }.

Odwołania można wykonywać względem całego rekordu za pomocą nazwy Osoba lub względem pojedynczej kolumny tego rekordu za pomocą nazwy Person.Name lub Person.Address.
UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } ) Współdziała z funkcją Patch w celu zaktualizowania zmiennej kontekstowej Osoba przez ustawienie dla kolumny Adres wartości 2 Main St. Person ma teraz wartość rekordu { Name: "Milton", Address: "2 Main St" } }.

Przykład krok po kroku 1

  1. Domyślnemu ekranowi nadaje nazwę Źródło, dodaje kolejny ekran i nadaje mu nazwę Cel.

  2. Na ekranie Źródło dodaje dwa przyciski i ustawia dla ich właściwości Text wartości Angielski i Hiszpański.

  3. Dla właściwości OnSelect przycisku Angielski ustawia następujące wyrażenie:
    Navigate(Target, ScreenTransition.Fade, {Language:"English"})

  4. Dla właściwości OnSelect przycisku Hiszpański ustawia następujące wyrażenie:
    Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})

  5. Na ekranie Cel dodaje etykietę i jako wartość jej właściwości Text ustawia to wyrażenie:
    If(Language="English", "Hello!", "Hola!")

  6. Na ekranie Cel wybierz pozycję Kształty na karcie Wstawianie, a następnie wybierz strzałkę Wstecz.

  7. Dla właściwości OnSelect strzałki Wstecz ustaw następującą formułę:
    Navigate(Source, ScreenTransition.Fade)

  8. Na ekranie Źródło naciśnij klawisz F5, a następnie wybierz przycisk jednego z języków.

    Na ekranie Cel pojawi się etykieta w języku odpowiadającym wybranemu przyciskowi.

  9. Wybierz strzałkę Wstecz, aby powrócić do ekranu Źródło, a następnie wybierz przycisk drugiego języka.

    Na ekranie Cel pojawi się etykieta w języku odpowiadającym wybranemu przyciskowi.

  10. Naciśnij klawisz Esc, aby powrócić do domyślnego obszaru roboczego.

Przykład krok po kroku 2

  1. Otwórz aplikację kanwa, w której chcesz użyć tej formuły.
  2. Dodaj nowy pusty ekran, wybierając Nowy ekran na pasku poleceń.
  3. Dodaj przycisk i ustaw dla jego właściwości OnSelect następującą formułę:
    UpdateContext( { Name: "Lily", Score: 10 } )