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


UpdateContext функция

Применимо к: приложениям Canvas

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

Обзор

UpdateContext Используйте функцию для создания переменной контекста, которая временно содержит часть информации, например количество раз, когда пользователь выбрал кнопку или результат операции данных.

Переменные контекста привязаны к экрану. Это означает, что вы не можете создать формулу, ссылающуюся на переменную контекста другого экрана. При использовании другого средства программирования переменную контекста можно представить как локальную переменную. Для работы с глобальными переменными приложения используйте функцию Set.

Power Apps основывается на формулах, которые автоматически вычисляются при взаимодействии пользователя с приложением. Переменные контекста не предоставляют эту возможность, а также могут усложнить как процесс создания, так и структуру самого приложения. Прежде чем приступить к работе с переменной контекста, ознакомьтесь с общими сведениями о переменных.

Описание

Чтобы создать или обновить переменную контекста, передайте одну запись в функцию UpdateContext . В каждой записи укажите имя столбца, которое определяет имя переменной или соответствует ему, и значение переменной.

  • Если указать имя переменной, которую вы ранее определили, UpdateContext задайте значение переменной заданному значению.
  • Если указать имя переменной, которая еще не существует, UpdateContext создайте переменную с таким именем и задает значение указанной переменной.
  • Если вы ранее определили переменную, но не указали ее в данной UpdateContext формуле, его значение остается неизменным.

Контекстные переменные неявно создаются с помощью функции или навигацииUpdateContext. Для этого не требуется явное объявление. Если удалить все UpdateContext ссылки на контекстную переменную и перейти к ней, эта переменная контекста перестанет существовать. Чтобы очистить переменную, задайте в качестве ее значения результат функции Blank.

Чтобы просмотреть значения, определения и сведения об использовании переменных, перейдите в среде разработки к меню "Файл", а затем откройте представление "Переменные".

Ссылку на переменную контекста в формуле можно добавить на основе имени столбца этой переменной. Например, UpdateContext( { ShowLogo: true } ) создает переменную контекста с именем ShowLogo и задает значение true. Затем значение этой переменной контекста можно использовать по имени ShowLogo в формуле. Вы можете написать переменную контекста ShowLogo как формулу для свойства Visible элемента управления "Изображение", а затем показывать или скрывать этот элемент в зависимости от заданного значения переменной (true или false).

Как показано далее в примерах, переменные контекста могут содержать несколько типов данных, в том числе:

  • одиночное значение;
  • запись;
  • таблицу;
  • ссылку на объект;
  • любой результат формулы.

Значение переменной контекста хранится, пока приложение не будет закрыто. Если определить переменную контекста и назначить ей значение для определенного экрана, данные не изменятся даже после переключения на другой экран. Когда приложение закроется, значение переменной контекста будет потеряно. При следующей загрузке приложения его нужно будет создать снова.

Каждая переменная контекста привязана к конкретному экрану. Если вы определили переменную контекста на одном экране, а затем хотите изменить ее с другого экрана, необходимо создать формулу на основе функции Navigate. Или можно использовать глобальную переменную.

UpdateContext не имеет возвращаемого значения, и его можно использовать только в формуле поведения.

Синтаксис

UpdateContext( UpdateRecord )

  • UpdateRecord – Обязательно. Запись, содержащая имя хотя бы одного столбца и его значение. Переменная контекста создается или обновляется для каждого указанного столбца и значения.

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

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

Примеры

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

Добавьте ссылку на эту запись в целом по имени Person или на ее отдельный столбец с помощью параметра Person.Name или Person.Address.
UpdateContext( { Person: Patch( Person, {Address: "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 } )