Функция 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 – Обязательно. Запись, содержащая имя хотя бы одного столбца и его значение. Переменная контекста создается или обновляется для каждого указанного столбца и значения.

ОбновлениеКонтекста( { ПеременнаяКонтекста1: Значение1 [, ПеременнаяКонтекста2: Значение2 [, ... ] ] } )

  • ContextVariable1 - Обязательно. Имя создаваемой или обновляемой переменной контекста.
  • Значение1 - Обязательно. Значение, присваиваемое переменной контекста.
  • ContextVariable2: Value2, ... - Необязательно. Дополнительные переменные контекста, которые нужно создать, и их значения.

Примеры

Формула Описание Результат
UpdateContext( { Счетчик: 1 } ) Создает или изменяет переменную контекста Counter, задавая для нее значение 1. Счетчик имеет значение 1. Вы можете добавить ссылку на эту переменную по имени Counter в формуле.
UpdateContext( { Счетчик: 2 } ) Изменяет значение переменной контекста Counter из предыдущего примера на 2. Счетчик имеет значение 2.
UpdateContext( { Имя: "Лилия", Оценка: 10 } ) Создает или изменяет переменные контекста Name и Score, задавая для них значения Lily и 10 соответственно. Имя имеет значение Лилия, а Оценка имеет значение 10.
UpdateContext( { Персона: { Имя: "Милтон", Адрес: "1 Main St" } } ) Создает или изменяет переменную контекста Person, задавая для нее запись в качестве значения. Запись содержит два столбца: Name и Address. Столбец Name имеет значение Milton, а столбец Address — 1 Main St. Персона имеет значение записи { Имя: «Милтон», Адрес: «1 Main St» } }.

Добавьте ссылку на эту запись в целом по имени Person или на ее отдельный столбец с помощью параметра Person.Name или Person.Address.
UpdateContext( { Персона: Patch(Персона, {Адрес: "2 Main St" } ) } ) В сочетании с функцией Patch позволяет обновить переменную контекста Person, задав для столбца Address значение 2 Main St. Персона теперь имеет значение записи { Имя: «Милтон», Адрес: «2 Main St» } }.

Пошаговый пример 1

  1. Присвойте экрану по умолчанию имя Source и добавьте еще один экран с именем Target.

  2. На экране Source добавьте две кнопки и задайте для их свойств Text значения English и Spanish.

  3. В качестве значения свойства OnSelect кнопки English задайте это выражение:
    Navigate(Цель, ScreenTransition.Fade, {Язык:"Английский"})

  4. В качестве значения свойства OnSelect кнопки Spanish задайте это выражение:
    Navigate(Цель, ScreenTransition.Fade, {Язык:"Испанский"})

  5. На экране Target добавьте метку и задайте в качестве значения ее свойства Text это выражение:
    Если(Язык="Английский", "Привет!", "Hola!")

  6. На экране Target перейдите на вкладку Вставка, выберите Фигуры и нажмите кнопку со стрелкой "Назад".

  7. Задайте для свойства OnSelect стрелки "Назад" эту формулу:
    Навигация(Источник, Переход экрана.Затухание)

  8. На экране Source нажмите клавишу F5, а затем нажмите кнопку для любого языка.

    После этого на экране Target появится метка на языке, соответствующем нажатой кнопке.

  9. Нажмите кнопку со стрелкой "Назад", чтобы вернуться на экран Source, и нажмите кнопку для другого языка.

    После этого на экране Target появится метка на языке, соответствующем нажатой кнопке.

  10. Нажмите клавишу ESC, чтобы вернуться в рабочую область по умолчанию.

Пошаговый пример 2

  1. Откройте приложение на основе холста, в котором вы хотите использовать эту формулу.
  2. Добавьте новый пустой экран, выбрав Новый экран на панели команд.
  3. Добавьте кнопку и задайте следующую формулу в качестве значения свойства OnSelect:
    UpdateContext( { Имя: "Лилия", Оценка: 10 } )