将 Power Fx 与命令一同使用

本文介绍命令特定的各个 Power Fx 方面。 还可以使用今天在画布应用中使用的很多其他功能。 请记住,存在差异,因为命令主要用于模型驱动应用。

  • 支持所有现有的数据流函数。 什么是数据流?
  • 支持处理数据的命令性函数。
  • 支持简单的 ConfirmNotify 的命令性函数。
  • 有关不支持的函数列表,请转到不支持的函数

备注

发布 Power Fx 命令可能需要几分钟时间。 即使在发布操作似乎已完成后,后台操作也仍在运行,这可能并不明显。 您可能需要在发布后等待几分钟,然后刷新应用来查看您的更改。 首次为应用发布基于 Power Fx 的命令时,这通常需要更长的时间。

OnSelect

定义在应用内选择按钮时执行的逻辑。

可见

定义在运行应用时隐藏或显示按钮的逻辑。

若要定义可见性逻辑,请选择此命令。 然后在右侧命令属性窗格中选择可见性,然后选择根据公式中的条件进行显示。 您可以选择编辑栏左侧的可见,然后使用编辑栏编写 Power Fx 表达式。

所选属性

字段 类型​​ 说明
Item DataSource 的记录 从 DataSource 选择的记录之一。
AllItems 来自 DataSource 的记录表 从 DataSource 选择的所有记录。
状态 枚举 所选控件的状态。 编辑 (=0)、新建 (=1)、查看 (=2)
Unsaved 布尔值 如果 Selected 或 SelectedItems 有未保存的更改,返回 true。 否则返回 false。 如果在命令组件库中将 AutoSave 设置为 true(默认选项),始终返回 false。
  • Selected 属性由命令的主机提供。
  • ItemAllItems 名称与 ComboBox 控件和 库 控件有些一致,但这是一种新模式。
  • 如果未选择任何记录,Item 将返回 Blank(IsBlank 将返回 true),AllItems 将返回一个空表(IsEmpty 将返回 true)。
  • 记录引用(多态记录类型)的 Null DataSource。 可以调用通用函数,如可以使用 Save 或 IsType/AsType。
  • 如果 SelectionMax <> 1,Item 始终为空白。 这可以防止将公式仅写入一个项目而不扩展到多个项目。

自动保存

  • 很多 JavaScript 命令从保存窗体缓冲开始。 这是因为这会让代码的其余部分更易于使用。
  • 默认情况下,窗体缓冲是代表应用制作者保存的。
    • 窗体在启动命令之前保存。
    • 保存操作期间发生的任何问题都在窗体的 UI 中处理。

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

导航

备注

有关其他选项,请参阅使用 JavaScript 的客户端 API 参考。 详细信息:navigateTo(客户端 API 参考)

导航到自定义页面

要导航到模型驱动应用中的自定义画布页面,将页面名称作为第一个参数传递。

Navigate( myCustomPage )

导航到表的默认视图

要导航到表的默认视图,请将表名称作为第一个参数传递。

Navigate( Accounts )

导航到表的特定系统视图

要导航到表的特定系统视图,传递表的 Views 枚举。

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

导航到表的默认窗体

要导航到表的默认窗体,将记录作为第一个参数传递。

Navigate( Gallery1.Selected )

在创建模式下导航到表的默认窗体

要导航到表的默认窗体,传递从 Defaults 函数创建的 Dataverse 记录。 这将打开将此记录作为新记录的默认窗体。 Defaults 函数采用表名来创建记录。

Navigate( Defaults( Accounts ) )

优化数据源和记录信息的用户体验

使用 DataSourceInfo 函数RecordInfo 函数优化所显示和处理的数据信息相关用户体验。

例如,使用 RecordInfo 可确定当前用户是否有权修改记录,并使用其 Visible 属性适当地显示或隐藏“编辑”按钮:

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

例如,使用 DataSourceInfo 确定当前用户是否有权创建记录以及使用其 Visible 属性相应地显示或隐藏“创建”按钮:

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

其他不支持的区域

  • 加速
  • 应用
  • 指南针
  • 连接
  • Dataverse 文件类型列
  • 环境
  • 主机
  • 布局
  • 地点
  • ScreenSize

另请参见

了解行为公式

公式引用

Power Fx 概述