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


Императивная логика

Заметка

Microsoft Power Fx — это новое название языка формул приложений на основе холста. Эти статьи находятся в стадии разработки, поскольку мы извлекаем язык из приложений на основе холста, интегрируем его с другими продуктами Microsoft Power Platform и делаем его доступным как открытый исходный код. Начнем с Обзор Microsoft Power Fx для введения в язык.

Большинство формул в Microsoft Power Fx предназначены для вычисления значений. Как и в электронной таблице Excel, повторное вычисление выполняется автоматически при изменении значений. Например, можно сделать так, чтобы значение в элементе управления Label (Метка) становилось красным, если оно меньше нуля, и черным в противном случае. Таким образом, вы можете задать в качестве значения свойства Color этого элемента управления такую формулу:

If( Value(TextBox1.Text) >= 0, Color.Black, Color.Red )

При этом, если пользователь выберет элемент управления Button (Кнопка), значения не изменятся, поэтому новые вычисления не выполняются. В Excel нет эквивалента элементу управления Button (Кнопка).

Выбрав элемент управления Button (Кнопка), пользователь инициирует последовательность действий или схем поведения, которые приводят к изменению состояния приложения.

  • Изменение отображающегося экрана: функции Back.
  • Управление сигналом (только Power Apps): функции Enable и Disable.
  • Обновление или удаление элементов в источнике данных: функции Refresh, Update, UpdateIf, Patch, Remove, RemoveIf.
  • Обновление переменной контекста (только приложения Power Apps на основе холста): функция UpdateContext.
  • Создание, обновление или удаление элементов в коллекции: функции Collect, Clear, ClearCollect.

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

Несколько действий

Чтобы создать список выполняемых действий, перечислите их через точку с запятой. Например, можно указать, что после обновления переменной контекста необходимо возвратиться на предыдущий экран:

UpdateContext( { x: 1 } ); Back()

Действия выполняются в том порядке, в котором они указаны в формуле. Следующая функция не выполняется до тех пор, пока не завершится выполнение текущей. В случае ошибки запуск последующих функций становится невозможным.