Использование Power Fx с командами

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

  • Поддерживаются все существующие функции потока данных. Что такое потоки данных?
  • Поддерживаются императивные функции, работающие с данными.
  • Поддерживаются императивные функции для простого Confirm и Notify.
  • Список неподдерживаемых функций см. в Функции не поддерживаются.

Примечание

Публикация команд Power Fx может занять несколько минут. Может быть неочевидно, что фоновые операции продолжают выполняться даже после завершения операции публикации. Возможно, вам придется подождать несколько минут после публикации, а затем обновить приложение, чтобы изменения отобразились. Обычно это занимает больше времени при первой публикации команды на основе Power Fx для приложения.

OnSelect

Определяет логику, которая выполняется при выборе кнопки в приложении.

Видимый

Определяет логику для скрытия или отображения кнопки при запуске приложения.

Чтобы определить логику видимости, выберите команду. Затем выберите Видимость на правой панели свойств команды и выберите Показывать при выполнении условий из формулы. Вы можете выбрать Видимый слева от строки формул, затем написать выражение Power Fx, используя строку формул.

Свойство Selected

Поле Тип Описание
Item Запись источника данных Одна из записей, выбранных из источника данных.
AllItems Таблица записей из источника данных Все записи, выбранные из источника данных.
State Перечисление Состояние выбранного элемента управления. Edit (=0), New (=1), View (=2)
Unsaved Логический Возвращает true, если в Selected или SelectedItems есть несохраненные изменения. В противном случае возвращает false. Всегда возвращает false, если для AutoSave установлено значение true (параметр по умолчанию) в библиотеке компонентов команд.
  • Свойство Selected предоставляется узлом команды.
  • Имена Item и AllItems в некоторой степени согласуются с элементом управления ComboBox и элементом управления Галерея, но это новый шаблон.
  • Если запись не выбрана, Item возвращает "пустой" (IsBlank возвращает true) и AllItems возвращает пустую таблицу (IsEmpty возвращает true).
  • Пустой источник данных для ссылок на записи (полиморфные типы записей). Могут быть вызваны общие функции, такие как Save или IsType/AsType.
  • Item всегда пустой, если SelectionMax <> 1. Это предотвращает запись формул только для одного элемента и невозможность масштабирования до нескольких элементов.

AutoSave

  • Многие команды JavaScript начинаются с сохранения буфера формы. Это происходит потому, что это упрощает работу с остальной частью кода.
  • По умолчанию буфер формы сохраняется от имени создателя приложения.
    • Форма сохраняется до инициации команды.
    • Все проблемы, возникающие во время операции сохранения, решаются в пользовательском интерфейсе формы.

Функция Patch

Исправление (обновление) текущей выбранной записи

Patch(Accounts, Self.Selected.Item, {'Account Name': "Changed Account name"})

Создать связанную запись

Примечание

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

Patch(Tasks,Defaults(Tasks),{Regarding:Self.Selected.Item},{Subject:"Subject of the Task"})

Проверить и отредактировать свойство даты

If(Self.Selected.Item.'Last Date Included in Campaign'>DateAdd(Now(),-3), Patch(Accounts,Self.Selected.Item,{'Last Date Included in Campaign':Date(2021,10,19)}))

Видимое свойство: отображать команду, только если в представлении сетки выбрана одна или несколько записей

CountRows(Self.Selected.AllItems) > 0

Контроль видимости на основе данных записи

//Button will be visible for accounts with Account Rating > 20
Self.Selected.Item.'Account Rating'>20

Перейти

Примечание

Дополнительные параметры см. в справочнике по клиентскому API для использования JavaScript. Больше информации: navigateTo (справочник по клиентскому API)

Перейти на настраиваемую страницу

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

Navigate( myCustomPage )

Перейдите к представлению таблицы по умолчанию

Чтобы перейти к представлению таблицы по умолчанию, передайте имя таблицы в качестве первого аргумента.

Navigate( Accounts )

Перейдите к конкретном системному представлению таблицы

Чтобы перейти к определенному системному представлению таблицы, передайте перечисление Views таблицы.

Navigate( 'Accounts (Views)'.'My Active Accounts' )

Перейдите к форме таблицы по умолчанию

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

Navigate( Gallery1.Selected )

Перейдите к форме таблицы по умолчанию в режиме создания

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

Navigate( Defaults( Accounts ) )

Оптимизация взаимодействия с пользователем с помощью источника данных и записи информации

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

Например, используйте RecordInfo, чтобы определить, есть ли у текущего пользователя разрешение на изменение записи, и соответствующим образом отобразить или скрыть кнопку "Изменить" с помощью ее свойства Visible:

EditButton.Visible = 
   RecordInfo( Gallery1.Selected, RecordInfo.EditPermission )

Например, используйте DataSourceInfo, чтобы определить, есть ли у текущего пользователя разрешение на создание записи, и соответствующим образом отобразить или скрыть кнопку «Создать» с помощью ее свойства Видимое:

CreateButton.Visible = 
   DataSourceInfo( Accounts, DataSourceInfo.CreatePermission )

Запрашивайте подтверждение, прежде чем предпринимать какие-либо действия

Используйте функцию Confirm для отображения диалогового окна поверх текущего экрана.

Notify( Confirm( "Are you sure?", 
                 { ConfirmButton: "Yes", CancelButton: "No" } 
        ) 
)

Отображает уведомление true, если нажата кнопка Да, и уведомление false, если нажата кнопка Нет.

Уведомить пользователя

Уведомление можно показать пользователям приложения, вызвав функцию Notify.

Примечание

NotificationType.Success в настоящее время не поддерживается и приведет к информационному типу уведомления.

Notify( "Model-driven app notification message" )

Другие примеры

Запуск URL-адреса

Launch("https://www.bing.com");

Доступ свойства 1:N

Self.Selected.Item.'Recurring Appointments'

Проверить свойство связанной записи

Self.Selected.Item.'Parent Account'.'Account Name'="parent"

Функции не поддерживаются

Следующие функции Power Fx в настоящее время не поддерживаются с помощью команд в приложениях на основе модели.

  • Back()
  • Clear()
  • Collect()
  • Copy()
  • Disable()
  • Enable()
  • Exit()
  • InvokeControl()
  • Language()
  • LoadData()
  • Param()
  • Распечатать()
  • ReadNFC()
  • RequestHide()
  • ResetForm()
  • Revert()
  • SaveData()
  • ScanBarcode()
  • Set()
  • SubmitForm()
  • UpdateContext()
  • User()
  • ViewForm()

Перечисления не поддерживаются

  • Align
  • AlignInContainer
  • BarcodeType
  • BorderStyle
  • Color
  • Direction
  • DisplayMode
  • Font
  • FontWeight
  • FormPattern
  • GridStyle
  • ImagePosition
  • ImageRotation
  • LabelPosition
  • Layout
  • LayoutAlignItems
  • LayoutDirection
  • LayoutJustifyContent
  • LayoutMode
  • LayoutOverflow
  • ListItemTemplate
  • MapStyle
  • Overflow
  • PDFPasswordState
  • PenMode
  • RemoveFlags
  • ScreenTransition
  • TeamsTheme
  • TextFormat
  • TextMode
  • TextPosition
  • Themes
  • Transition
  • VerticalAlign
  • VirtualKeyboardMode
  • Zoom

Другие неподдерживаемые области

  • Acceleration
  • App
  • Compass
  • Connection
  • Столбцы типа файла Dataverse
  • Environment
  • Хост
  • Layout
  • Местонахождение
  • ScreenSize

См. также

Общие сведения о формулах поведения

Справка по формулам

Обзор Power Fx