在模型驱动窗体中嵌入画布应用

已完成

Microsoft Power Apps 主要由两种工具组成:画布应用和模型驱动应用。 虽然模型驱动应用只能将 Microsoft Dataverse 作为数据库,但画布应用通过内置或自定义连接器支持 400 多个数据源。

您可以为移动或平板电脑设备使用画布应用程序,在其中您将需要基于任务的应用程序。 开发流程简单明了,并为您提供空白画布。 您可以在空白画布上拖动组件来形成用户界面。 此外,您可以在每个组件的属性窗格中开发公式,以添加验证和其他业务逻辑。

若要为模型驱动应用注入画布应用的强大功能,您可以嵌入画布应用。 嵌入画布应用将让您可以在窗体上创建丰富的视觉对象区域,并显示来自各种源的数据以及来自 Dataverse 的数据。

使用经典体验嵌入画布应用

若要使用经典体验将画布应用嵌入到模型驱动窗体中,您首先需要打开主窗体并切换到经典视图。 在作为 Dynamics CRM 应用程序原始开发平台的经典开发平台中,可自动生成要嵌入到模型驱动应用中的画布应用。

“切换到经典”选项的屏幕截图。

在经典视图中,您需要选择要绑定到画布应用的列。 在主页选项卡上的编辑组中选择更改属性。在字段属性对话框中选择控件选项卡。

“字段属性”对话框屏幕截图。

若要添加画布应用控件,请选择添加控件。 选择 Web 以允许在 Web 界面中显示画布应用。

使用以下属性将嵌入式画布应用的应用程序属性设置为模型驱动应用:

  • 表(实体)名称 - 指定将向嵌入式画布应用提供数据的表。 将根据窗体数据源预填充此属性。 但是,您可以通过选择配置属性图标来更改此值。

  • 应用名称 - 指定要嵌入的画布应用的名称。 在当前环境中,模型驱动窗体会查找具有指定名称的画布应用。 如果在环境中找不到具有该名称的画布应用,画布应用控件会使用应用 ID 加载画布应用。 输入现有画布应用的应用名称。

  • 应用 ID - 指定嵌入式画布应用的应用 ID。 您可以输入现有画布应用的应用 ID。

“字段属性”对话框屏幕截图,其中在 Web 下选择了“画布应用”。

如果您没有现有的画布应用,则可以将应用名称应用 ID 属性留空,并在字段属性对话框中选择自定义按钮以创建新的画布应用。 此操作将打开 Power Apps 画布应用工作室。

已使用用户界面中主机模型驱动应用上所选表的主键字段创建了新的画布应用。 主键放置在 Form1 窗体控件上,该控件是自动创建的控件。 窗体控件的 Item 属性会引用特殊的 ModelDrivenFormIntegration 控件。

特殊的 ModelDrivenFormIntegration 控件将显示在画布应用工作室的左窗格中。 此控件负责将主机模型驱动窗体中的上下文数据引入嵌入式画布应用。

您可以通过添加更多字段和控件来设计画布应用。 记得在完成设计后保存并发布画布应用。 主机模型驱动应用的应用名称和应用 ID 属性将自动使用新建画布应用的相应详细信息进行更新。

使用现代体验嵌入画布应用

若要使用现代体验将画布应用嵌入到模型驱动窗体中,您首先需要打开主窗体,即主机模型驱动窗体。 从要绑定到画布应用的主窗体编辑器中选择列,然后从模型驱动应用的组件列表中,在相关数据组下选择画布应用控件。

“添加画布应用”区域的屏幕截图。

添加画布对话框将打开。 此对话框具有三个属性:实体名称应用名称应用 ID。 这些属性与经典体验中的属性类似。 您可以创建空白画布应用,然后在对话框中输入应用 ID。

另外,您还可以选择将绑定到画布应用的列,然后在窗体编辑器右侧的列属性窗格中,选择 Component 属性。 在添加组件对话框中,选择画布应用

组件属性的屏幕截图。

对话框将提示您,需要输入三个属性:实体名称应用名称应用 ID。 您可以创建空白画布应用,然后在对话框中输入应用 ID。

画布应用组件将嵌入到模型驱动应用中,然后组件属性将类似于以下屏幕截图所示。

嵌入到模型驱动应用的画布应用组件的屏幕截图。

ModelDrivenFormIntegration 控件属性和操作

在模型驱动应用中嵌入画布应用时,画布应用中会添加名为 ModelDrivenFormIntegration 的特殊控件。 此控件负责将上下文数据从主机模型驱动应用引入画布应用。 此控件具有以下重要属性和操作:

  • DataSource - 默认情况下,应将 DataSource 属性值设置为已连接到主机模型驱动窗体父表的数据源。 在嵌入现有画布应用时,您可以在画布应用树视图中设置 ModelDrivenFormIntegration 数据源。

  • OnDataRefresh - 当主机模型驱动窗体保存数据时,系统将评估此属性中的公式。 使用此属性刷新已连接到主机模型驱动窗体父表的数据源,并执行其他操作,如设置或更新变量。

  • 物料 - 只读属性,其允许嵌入式画布应用访问主机模型驱动应用的列。 例如,若要获取具有 departmentnumber 名称和 Department Number 显示名称的列的值,您可以使用 ModelDrivenFormIntegration.Item.departmentnumberModelDrivenFormIntegration.Item.'Department Number'

  • SaveForm - 预定义操作,用于保存主机模型驱动窗体上的数据。

  • RefreshForm - 预定义操作,用于刷新主机模型驱动窗体上的数据。 此属性附带以下一个参数:

    showPrompt- 必需的布尔参数,用于在用户在主机模型驱动窗体上保存任何未保存的数据之前,指示是否应向用户显示确认提示。 值应为 truefalse

  • NavigateToMainForm - 预定义操作,用于将主机模型驱动窗体导航到主窗体并显示指定行。 此属性附带以下三个参数:

    • entityName- 必需的字符串参数,用于指定主窗体的父表。

    • formName- 必需的字符串参数,用于指定要导航到的主窗体的名称。

    • recordId- 必需的字符串参数,用于指定要在主窗体中显示的行的 ID。

  • NavigateToView - 预定义操作,用于将主机模型驱动窗体导航到视图。 此属性附带以下两个参数:

    • entityName- 必需的字符串参数,用于指定视图的父表。

    • viewName- 必需的字符串参数,用于指定要导航到的主窗体的名称。

  • OpenQuickCreateForm - 预定义操作,用于打开表的默认快速创建窗体。 此属性附带以下一个参数:

    entityName- 必需的字符串参数,用于指定快速创建窗体的父表。

在下一单元中,您将了解如何在模型驱动窗体中添加时间线组件。