本文介绍命令特定的各个 Power Fx 方面。 还可以使用今天在画布应用中使用的很多其他功能。 请记住,存在差异,因为命令主要用于模型驱动应用。
备注
发布 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 属性由命令的主机提供。
- Item 和 AllItems 名称与 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()
- Print()
- 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