在模型驱动应用的自定义页面中使用 Power Fx
本文概述了常见的 Microsoft Power Fx 函数在独立画布应用和自定义页面之间的工作方式有何不同。 这是因为自定义页面是模型驱动应用中的一个组件。 其他 Microsoft Power Fx 公式继续以相同的方式工作。
重要
自定义页面是一项具有重大产品更改的新功能,目前有很多已知限制,自定义页面已知问题中进行了概括。
向自定义页面添加通知
可以通过调用 Notify 函数向自定义页面中的用户显示通知。 当通知消息出现时,它们停靠在默认页面上方以保持可见,直到被禁用。 如果提供超时间隔,通知消息将在超时间隔后消失。 建议不要使用 10 超时间隔,因为这不再被视为超时间隔。 详细信息:Notify 函数。
Notify( "Custom page notification message" )
Notify( "Custom page notify warning message", NotificationType.Warning )
导航到自定义页面
本节提供使用 Power Fx 从模型驱动应用窗体导航到自定义页面、从自定义页面导航到其他自定义页面或模型驱动应用窗体的示例。
从自定义页面导航
Navigate 函数允许用户从模型驱动应用窗体或自定义页面导航。 此函数仅适用于自定义页面在模型驱动应用中运行时。 在画布设计器中进行自定义页面创作或预览时,此函数不起作用。
导航到其他自定义页面
要从一个自定义页面导航到另一个,请将自定义页面的显示名称作为第一个参数传递。
Navigate( CustomPage2 )
导航到表的默认视图
要导航到表的默认视图,请将表名称作为第一个参数传递。
Navigate( Accounts )
重要
在发布和测试之前,确保将客户 Microsoft Dataverse 表添加到自定义页面中。
导航到表的特定系统视图
要导航到表的特定系统视图,传递视图的 GUID。
Navigate( 'Accounts (Views)'.'My Active Accounts' )
导航到表的默认窗体
要导航到表的默认窗体,将记录作为第一个参数传递。
Navigate( Gallery1.Selected )
导航到表的特定窗体
要将 Dataverse 记录传递到特定窗体,在第二个参数的 Page 属性中传递窗体名称。
Navigate(
AccountGallery.Selected,
{ Page: 'Accounts (Forms)'.Account } )
导航到具有记录输入的特定自定义页面
要将 Dataverse 记录传递到特定自定义页面,在第二个参数的 Page 属性中传递自定义页面名称。
Navigate(
AccountGallery.Selected,
{ Page: 'Account Record Page' } )
在目标自定义页面中,使用 Param 函数检索记录来获取 etn 和 id 值。
下面是将记录加载到 EditForm 控件的示例。
AccountEditForm.DataSource = Accounts
AccountEditForm.Item =
LookUp( Accounts, accountid = GUID( Param("id") ) )
在创建模式下导航到表的默认窗体
要在创建模式下导航到表的默认窗体,传递从 Defaults 函数创建的 Dataverse 记录。 这将打开将此记录作为新记录的默认窗体。 Defaults 函数采用表名来创建记录。
Navigate( Defaults( Accounts ) )
在默认字段的创建模式下导航到表的默认窗体
要导航到具有某些默认字段的新记录,使用 Patch 函数在表的默认记录上设置字段。
Navigate(
Patch(
Defaults(Accounts), { 'Account Name': "My company", Phone: "555-3423" } )
)
导航回上一页或关闭对话
为导航回上一页或关闭对话,将在自定义页面调用 Back 函数。 Back 函数关闭当前页面并返回到最后一个模型驱动应用或模型驱动应用中的自定义页面。 如果自定义页面有多个屏幕,请参阅自定义页面有多个屏幕时的导航回行为。
Back()
自定义页面有多个屏幕时的导航回行为
自定义页面的默认配置是有一个屏幕。 在这种情况下,Back 函数调用将关闭自定义页面,除非自定义页面是模型驱动应用中页面堆栈中的最后一个。 最后一个页面会保持打开。
应用制作者可以在自定义页面中启用多个屏幕。 这些应该被视为自定义页面中可以堆积的整页控件。 打开自定义页面无法指定要使用的屏幕。 当自定义页面包含多个屏幕时,制作者负责管理屏幕堆积。 对屏幕调用 Navigate 函数将增加到带有自定义页面的屏幕堆栈中。 每个 Back 函数调用会从屏幕堆栈中删除一个屏幕。 当屏幕堆栈上只有一个屏幕时,自定义页面将关闭。
启用多个屏幕
默认情况下,自定义页面使用单个屏幕来鼓励将应用分成每个页面一个屏幕。 这可以通过启用设置 > 显示 > 启用多个屏幕来切换。
已知问题
Navigate
函数不支持在对话中打开模型或自定义页面。 自定义页面中的所有导航都将以内联方式打开。- 导航功能不支持打开:
- 仪表板集合或特定仪表板。
- 特定的模型驱动应用窗体。
- 自定义页面只能在多会话模型驱动应用中打开到当前会话的当前应用选项卡。