Функция UpdateContext

Отнася се за: Приложения за платно

Създава или актуализира контекстни променливи на текущия екран.

Преглед

Използвайте UpdateContext функция за създаване на контекстна променлива, която временно съдържа информация, например колко пъти потребителят е избрал бутон или резултат от операция с данни.

Контекстните променливи са обхванати до екран, което означава, че не можете да изградите формула, която се отнася до контекстна променлива на друг екран. Ако сте използвали друг инструмент за програмиране, можете да мислите за контекстна променлива като подобна на локална променлива. Използвайте функцията Set, за да работите с глобални променливи, които са достъпни във вашето приложение.

Power Apps се основават на формули, които автоматично преизчисляват, докато потребителят взаимодейства с приложение. Контекстните променливи не предлагат това предимство и може да направи приложението ви по-трудно за създаване и разбиране. Преди да използвате контекстна променлива, прегледайте работа с променливи.

Описание

За да създадете или актуализирате променлива на контекста, прекарайте един запис към функцията UpdateContext. Във всеки запис посочете името на колона, която определя или съвпада с името на променливата и стойността, на която искате да зададете тази променлива.

  • Ако посочите името на променлива, която сте дефинирали преди, UpdateContext задава стойността на променливата на стойността, която посочвате.
  • Ако посочите името на променлива, която все още не съществува, UpdateContext създава променлива с това име и задава стойността на тази променлива на стойността, която сте посочили.
  • Ако предварително сте дефинирали променлива, но не я уточнявайте в това конкретно UpdateContext формула, стойността му остава същата.

Контекстните променливи неявно се създават чрез функцията UpdateContext или Navigate. Не е необходима изрична декларация. Ако премахнете всички UpdateContext и Navigate препратки към контекстна променлива, тогава тази контекстна променлива ще престане да съществува. За изчистване на променлива задайте нейната стойност на резултата от функцията Blank.

Можете да видите стойностите, дефинициите и употребите на променливите си с изгледа Променливи под менюто Файл в средата за създаване.

Препращате контекстна променлива във формула, като използвате името на колоната на променливата. Например, UpdateContext( { ShowLogo: true } ) създава контекстна променлива с име ShowLogo и задава своята стойност на вярно. След това можете да използвате стойността на тази променлива на контекста, като използвате името ShowLogo във формула. Можете да пишете ShowLogo като формула за свойството видимо на контрола на изображението и да го покаже или скрие, въз основа на това дали стойността на променливата на контекста е вярно или невярно.

Както показват примерите по-късно в тази тема, променливите на контекста могат да съдържат няколко вида информация, включително тази:

  • една единствена стойност
  • запис
  • таблица
  • препратка към обект
  • всеки резултат от формула

Контекстната променлива държи стойността си, докато приложението не се затвори. Ако дефинирате контекстна променлива и зададете нейната стойност на определен екран, тази информация остава непокътната, дори ако потребителят премине към друг екран. След като приложението се затвори, стойността на контекстната променлива ще бъде загубена и трябва да бъде пресъздадена, когато приложението се зареди отново.

Всяка променлива на контекста се присвоява на екран. Ако искате да определите контекстна променлива на един екран и да промените тази променлива от друг екран, трябва да изградите формула, която се основава на Navigate функция. Или използвайте глобална променлива.

UpdateContext няма възвратна стойност и можете да го използвате само в рамките на формула на поведение.

Синтаксис

UpdateContext( UpdateRecord )

  • UpdateRecord – Задължително. Запис, който съдържа името на поне една колона и стойност за тази колона. Контекстна променлива се създава или актуализира за всяка колона и стойност, която посочвате.

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

  • ContextVariable1 - Задължително. Името на контекстна променлива за създаване или актуализиране.
  • Value1 - Задължително. Стойността, която се присвоява на контекстната променлива.
  • ContextVariable2: Value2, ... - По желание. Допълнителни контекстни променливи за създаване или актуализиране и техните стойности.

Примери

Формула Описание Резултат
UpdateContext( { Counter: 1 } ) Създава или променя променливата на контекста Counter, задавайки стойността си на 1. Counter има стойността 1. Можете да се позовавате на тази променлива, като използвате името Counter във формула.
UpdateContext( { Counter: 2 } ) Задава стойността на Counter контекстна променлива от предишния пример до 2. Counter има стойността 2.
UpdateContext( { Name: "Lily", Score: 10 } ) Създава или променя променливите на контекста име и резултат, задавайки стойностите им на лилия и 10 съответно. Име има стойността лилия, и резултат има стойността 10.
UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } ) Създава или променя променливата на контекста Person, задавайки стойността си на запис. Записът съдържа две колони, наречени име и адрес. Стойността на име колоната е Милтън, и стойността на адрес колоната е 1 Main St. Person има стойност на запис { Name: "Milton", Address: "1 Main St" } }.

Посочете този запис като цяло с името Person или се позовавайте на отделна колона от този запис Person.Name или Person.Address.
UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } ) Работи с Patch функция за актуализиране на Person контекстна променлива чрез задаване на стойността на адрес колона на 2 Main St. Person вече има стойност на запис { Name: "Milton", Address: "2 Main St" } }.

Пример стъпка по стъпка 1

  1. Дайте име на екрана по подразбиране Източник, добавете друг екран и го наименувайте Цел.

  2. На екрана източник, добавете два бутона и задайте техните Текст свойства, така че единият да гласи Английски, а другият Испански.

  3. Задайте свойството OnSelect на бутона Английски на този израз:
    Navigate(Target, ScreenTransition.Fade, {Language:"English"})

  4. Задайте свойството OnSelect на бутона Испански на този израз:
    Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})

  5. На екрана Цел добавете етикет и задайте свойството Текст на този израз:
    If(Language="English", "Hello!", "Hola!")

  6. На екрана Цел изберете Shapes на Insert и след това изберете стрелката Назад.

  7. Задайте свойството OnSelect на стрелката Назад на тази формула:
    Navigate(Source, ScreenTransition.Fade)

  8. От екрана Източник, натиснете F5 и след това изберете бутона за всеки език.

    На екрана Цел етикетът се появява на езика, който съответства на избрания от вас бутон.

  9. Изберете стрелката Назад, за да се върнете към източник екрана и след това изберете бутона за другия език.

    На екрана Цел етикетът се появява на езика, който съответства на избрания от вас бутон.

  10. Натиснете Esc, за да се върнете към работното пространство по подразбиране.

Пример стъпка по стъпка 2

  1. Отворете приложението за платно, където искате да използвате тази формула.
  2. Добавете нов празен екран, като изберете Нов екран от командната лента.
  3. Добавете бутон и задайте свойството OnSelect на тази формула:
    UpdateContext( { Name: "Lily", Score: 10 } )