Поділитися через


Функція UpdateContext

Застосовується до: програм Canvas

Створює або оновлює змінні контексту поточного екрана.

Зведення

За допомогою функції UpdateContext можна створити змінну контексту, яка тимчасово утримує частину інформації, наприклад кількість натискань кнопки користувачем або результат операції з даними.

Змінні контексту – це значення на екрані, тобто не можна створювати формулу, яка посилається на змінну контексту на іншому екрані. Якщо ви використовували інший засіб програмування, то можете уявляти змінну контексту як локальну змінну. За допомогою функції Set можна працювати з глобальними змінними, які доступні в усій програмі.

Power Apps використовують формули, які автоматично перераховуються, коли користувач взаємодіє з програмою. Контекстні змінні не мають такої переваги та можуть ускладнити створення та розуміння програми. Перш ніж використовувати змінну контексту, перегляньте розділ Робота зі змінними.

Опис

Щоб створити або оновити змінну контексту, додайте один запис до функції UpdateContext. У кожному записі вкажіть ім’я стовпця, який визначає або зіставляє ім’я змінної, а також значення, яке потрібно задати цій змінній.

  • Якщо вказати ім’я змінної, що вже було визначено, то функція UpdateContext задасть змінній вказане значення.
  • Якщо вказати ім’я змінної, якої ще не існує, то функція UpdateContext створить змінну з таким ім’ям і задасть цій змінній вказане значення.
  • Якщо ви раніше визначили змінну, але не вказали її в цій конкретній формулі UpdateContext, її значення не зміниться.

Змінні контексту неявно створюються за допомогою функції UpdateContext або Navigate. Явне оголошення не є обов’язковим. Якщо ви вилучили всі посилання UpdateContext і Navigate на змінну контексту, то ця змінна контексту припинить існувати. Щоб очистити змінну, встановіть її значенням результат функції Blank.

Значення, визначення та використання змінної можна переглянути в поданні "Змінні" у меню "Файл" редактора.

Щоб послатися на змінну контексту у формулі, скористайтесь ім’ям стовпця змінної. Наприклад, UpdateContext( { ShowLogo: true } ) створює змінну контексту на ім’я ShowLogo і задає їй значення true. Потім можна використати значення цієї змінної контексту, вказавши її ім’я ShowLogo у формулі. Ви можете писати ShowLogo як формулу для властивості Visible елемента керування "зображення", а також показати або приховати цей елемент керування залежно від того, яке значення має змінна контексту: true чи false.

Як показують приклади нижче в цьому розділі, змінні контексту можуть містити кілька типів інформації, зокрема такі:

  • одне значення
  • запис
  • таблиця
  • посилання на об’єкт
  • будь-який результат формули

Змінна контексту міститиме значення даних, доки програму не буде закрито. Якщо ви визначаєте змінну контексту та задаєте їй значення на певному екрані, ця інформація залишається незмінною, навіть якщо користувач переключається на інший екран. Після закриття програми значення змінної контексту буде втрачено, і її потрібно буде створити повторно після наступного завантаження програми.

Кожна змінна контексту має значення на екрані. Якщо потрібно визначити змінну контексту на одному екрані та змінити цю змінну на іншому екрані, слід створити формулу на основі функції 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 } ) Створює або змінює змінні контексту Name і Score, задаючи їм значення Lily і 10 відповідно. Name має значення Lily, а Score має значення 10.
UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } ) Створює або змінює змінну контексту Person, задаючи їй значення запису. Запис містить два стовпці під назвою Name й Address. Значення стовпця Name: Milton, а значення стовпця Address: 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, задаючи для стовпця Address значення 2 Main St. Person тепер матиме значення запису { Name: "Milton", Address: "2 Main St" } }.

Покроковий приклад 1

  1. Дайте стандартному екрану ім’я Source, а потім додайте ще один екран і назвіть його Target.

  2. На екрані Source додайте дві кнопки та задайте їм такі властивості Text: English і Spanish.

  3. Як значення властивості OnSelect кнопки English задайте такий вираз:
    Navigate(Target, ScreenTransition.Fade, {Language:"English"})

  4. Як значення властивості OnSelect кнопки Spanish задайте такий вираз:
    Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})

  5. На екрані Target додайте надпис і задайте для його властивості Text цей вираз:
    If(Language="English", "Hello!", "Hola!")

  6. На екрані Target виберіть Фігури на вкладці Вставлення, а потім виберіть стрілку назад.

  7. Для властивості OnSelect цієї стрілки назад задайте таку формулу:
    Navigate(Source, ScreenTransition.Fade)

  8. На екрані Source натисніть клавішу F5, а потім натисніть кнопку для будь-якої мови.

    На екрані Target відображається мітка мовою, яка відповідає натиснутій кнопці.

  9. Виберіть стрілку назад, щоб повернутися на екран Source, а потім натисніть кнопку для іншої мови.

    На екрані Target відображається мітка мовою, яка відповідає натиснутій кнопці.

  10. Натисніть клавішу Esc, щоб повернутися до стандартної робочої області.

Покроковий приклад 2

  1. Відкрийте компоновану програму, в якій потрібно використати цю формулу.
  2. Додайте новий пустий екран, вибравши Новий екран на панелі команд.
  3. Додайте кнопку та настройте її властивість OnSelect відповідно до нижченаведеної формули.
    UpdateContext( { Name: "Lily", Score: 10 } )