在模型驱动窗体上添加嵌入式画布应用
本文介绍如何在模型驱动窗体上嵌入画布应用。 画布应用可以连接到广泛的数据源,为设计人员提供对整体用户体验的更大控制。
本文介绍两种集成方法。 一是使用现代统一界面体验,二是使用经典体验。
备注
在现代应用中嵌入画布应用还有第三种方法,此方法使用自定义页面更好地与画布应用集成。 模型驱动应用的自定义页面概述。
使用现代体验嵌入画布应用
要将画布应用嵌入模型驱动应用主窗体(如客户表的主窗体),请执行以下步骤:
登录到 Power Apps。
选择环境,然后从左侧导航窗格中选择解决方案。 如果项目不在侧面板窗格中,请选择 …更多,然后选择所需项目。
打开具有要在其中向主窗体添加画布应用的表的解决方案。
打开此表,选择窗体,然后打开您需要的主窗体。
提示
默认情况下,画布应用组件标签是新画布应用。 您可能需要将画布应用标签名称更改为更有意义的内容,如画布应用的名称或要嵌入到窗体上的画布应用的简短说明。
选择想要显示画布应用的窗体上的区域,或者创建一个新选项卡来显示画布应用。
在左侧导航窗格中,选择组件,展开显示,然后选择画布应用组件。
您还可以为控件配置以下属性。
实体名称区域让您可以指定以下属性:
绑定到表列:当选择了绑定到表列时,静态值属性将更改,以允许您选择要绑定到的表列。 当您选择绑定到表列时,列由表列值定义。 例如,当为实体名称选择了绑定到表列时,在应用运行时,表名称的值将采用指定的表列的值。
静态值:使用此值添加一个名称,供您引用画布应用。 请注意,此值对嵌入式画布应用没有影响。 它只是作为一个参考点。
应用名称区域指定画布应用的唯一名称。
绑定到表列:当选择绑定到表列时,静态值属性将更改,以允许您选择要绑定到的表列。 当您选择绑定到表列时,列由表列值定义。 例如,当您为应用名称选择绑定到表列时,在应用运行时,应用名称的值将采用“表”列的值,如来自自定义文本列的值。
静态值:指定要嵌入的画布应用的唯一名称。 输入现有画布应用的画布应用的唯一名称。 详细信息:如何查找画布应用的唯一名称和应用 ID
必须的应用 ID 区域指定画布应用的应用 ID。
- 绑定到表列:当您选择绑定到表列时,列表将更改以允许您选择要绑定到的表列。 当您选择绑定到表列时,列由表列值定义。 例如,当您为应用名称选择绑定到表列时,在应用运行时,应用名称的值将采用列的值,如来自自定义文本列的值。
重要
对于大多数情况,我们不建议对应用 ID 使用绑定到表列选项,因为这需要在记录中的字段中显示正确的应用 ID。
- 静态值:输入现有画布应用的应用 ID。 详细信息:如何查找画布应用的唯一名称和应用 ID
组件显示位置。 指定客户端类型以显示嵌入式画布应用。 从 Web、移动和平板电脑中选择。
选择完成。 然后,若要发布您的应用以使其可供用户使用,请选择发布。
将嵌入式画布应用发布到模型驱动窗体之后,与其他用户共享嵌入式画布应用。 详细信息:共享嵌入式区域应用。
当用户打开包含您修改后的窗体的模型驱动应用时,他们将在窗体上看到嵌入的画布应用。 更改主窗体上显示的记录将更改传递到窗体的数据上下文,嵌入应用将刷新以显示相关数据。
本文说明了如何开始在模型驱动窗体中嵌入区域应用。 您可以进一步自定义嵌入的画布应用以连接和引入来自各个数据源的数据。 使用筛选、搜索和查找功能以及从主机模型驱动窗体传入的上下文来筛选或查找那些数据源中的特定记录。 使用 WYSIWYG 画布应用编辑器轻松设计界面以满足您的要求。
如何查找画布应用的唯一名称和应用 ID
canvas app 控件首先使用应用名称字段中的唯一名称查找画布应用。 如果在环境中找不到具有该唯一名称的画布应用,canvas app 控件接下来将使用应用 ID 字段中的指定值来加载画布应用。 虽然您必须同时在“应用名称”和“应用 ID”字段中输入值,但只需要其中一个值准确,嵌入式画布应用就可以加载到控件中。 请注意,画布应用必须在当前环境中。
- 应用名称字段是画布应用的唯一名称。 要查找唯一名称,向解决方案中添加画布应用。 画布应用的唯一名称显示在名称列中,并会出现在 solutionpublisherprefix_appnamenospaces_appendix 窗体中。 例如,contoso_canvasappwithsharepointlist_5ee16。
- 应用 ID 属性指定区域应用的 ID。 输入现有画布应用的应用 ID。 画布应用 ID 可以在 Power Apps 上找到,转到应用,选择画布应用,然后在命令栏上选择详细信息。
使用经典体验嵌入画布应用
登录到 Power Apps。
创建或编辑表的主窗体,在我们的示例中是客户表。
在命令栏中,选择切换到经典在经典窗体设计器中打开窗体。
在经典窗体设计器中,选择您希望嵌入式区域应用显示的窗体上的部分。
使用列窗格,添加必填列,例如客户名称。
重要
请始终使用确定具有值的必需列。 如果列无值,则不会刷新嵌入式画布应用来响应主机模型驱动的窗体上的任何数据更改。
选择列后,在主页选项卡上的编辑组中,选择更改属性。
在列属性对话框上,选择控件选项卡。
在控件选项卡上,选择添加控件。
在添加控件对话框上,在可用控件列表中,选择区域应用,然后选择添加。
在列属性对话框中,在控件列表中,选择画布应用,然后选择 Web 选项。
在控件列表下面的部分,显示可用于画布应用控件的属性列表。
- 表名称属性指定将向您的嵌入式画布应用提供数据的表。 它将会设置为包含要在之前步骤中添加的列的表。
- 请注意,即使此属性显示不可更改,对其进行更改也不会影响嵌入式区域应用。 这仅供您参考。
- 应用名称属性指定要嵌入的画布应用的名称。 模型驱动窗体在当前环境中查找具有指定名称的画布应用。 如果在环境中找不到具有该名称的画布应用,画布应用控件将使用应用 ID 加载画布应用。 输入现有画布应用的应用名称。
- 应用 ID 属性指定区域应用的 ID。 您可以输入现有画布应用的应用 ID,或者在选择自定义创建或编辑画布应用时,系统会自动为您生成并填充应用 ID。 画布应用 ID 可以在 Power Apps 上找到,转到应用,选择画布应用,然后在命令栏上选择详细信息。
备注
请注意,对应用 ID 值进行更改将断开模型驱动型窗体与嵌入式区域应用的链接。
如果应用名称或应用 ID 与现有画布应用都不匹配,窗体将显示消息“抱歉,我们找不到该应用。”
- 表名称属性指定将向您的嵌入式画布应用提供数据的表。 它将会设置为包含要在之前步骤中添加的列的表。
如果您是添加已完成的画布应用,请转到步骤 20。 如果是创建新的或编辑现有画布应用,请继续执行以下步骤。 选择自定义以创建或编辑区域应用。 这会在一个新选项卡中打开 Power Apps Studio。
备注
如果打开 Power Apps Studio 被 Web 浏览器弹出窗口阻止程序阻止,您必须启用 make.powerapps.com 网站或暂时禁用弹出窗口阻止程序,然后再次选择自定义。
观察以下内容:
- 在 Power Apps Studio 中,请注意左侧窗格中有一个特殊的 ModelDrivenFormIntegration 控件。 此控件负责将上下文数据从主机模型驱动的窗体带入嵌入式区域应用。
- 请注意,区域应用窗体控件已自动添加到您的嵌入式区域应用中,并显示数据正在通过 ModelDrivenFormIntegration 控件从主机模型驱动窗体传递到该控件。
- 选择视图选项卡,然后选择数据源。 请注意,您的主机模型驱动窗体的父表的数据源(即此例中的客户)已自动添加到您的嵌入式画布应用中。 - 选择 Form1 控件并观察 DataSource 属性是否设置为 Accounts。
- 依然选择 Form1 控件,观察 Item 属性是否设置为 ModelDrivenFormIntegration.Item。
备注
嵌入式画布应用具有通过 ModelDrivenFormIntegration.Item 从主机模型驱动窗体读取的完全访问权限。 举例来说,要获取名称为 accountnumber 且显示名称为 Account Number 的列的值,您可以使用 ModelDrivenFormIntegration.Item.accountnumber 或 ModelDrivenFormIntegration.Item.'Account Number'。
在右侧的属性窗格中,在列旁边,选择编辑列。
选择 + 添加列将另一列添加到画布应用窗体,或使用拖放重新排列现有列。 在完成添加字段和重新排列列时,关闭数据窗格。
选择文件选项卡,然后选择保存。
选择云选项卡。为应用提供唯一名称,然后选择右下方的保存。 请注意以下行为:
- 第一次保存应用时将自动发布应用。
- 在以后的保存中,选择发布,然后选择发布此版本可以让更改生效。
在菜单上,选择返回。
选择已打开经典窗体设计器的浏览器选项卡。 请注意,现在已经自动为区域应用控件的应用 ID 和应用名称属性填充了值。
重要
- 窗体设计器包含之前步骤中在其他浏览器中打开的 Power Apps Studio 的直接链接。
- 确保“应用名称”的值类似下面的屏幕截图。 “应用名称”属性指定将在运行时用于引用区域应用的唯一名称。 如果不设置此名称,将使用“应用 ID”属性引用区域应用,而在将区域应用作为解决方案的一部分导入时,这可能导致问题。 建议设置此名称以确保环境之间正确引用区域应用。 若要进行设置,请返回到步骤 12,并执行创建要嵌入的区域应用的步骤。
在列属性对话框上,选择显示选项卡。
清除窗体上的显示标签,然后选择确定。
- 如果您在此窗体上已有嵌入的区域应用,将显示消息“一个窗体中只能启用一个区域应用”。 若要添加新画布应用,您必须先禁用当前的嵌入式画布应用。 然后,启用新的嵌入式区域应用。
在主页选项卡上,选择保存,然后选择发布。
另请参阅
编辑在模型驱动窗体上嵌入的区域应用
从嵌入的区域应用内在主机窗体上执行预定义操作
ModelDrivenFormIntegration 控件的属性和操作
嵌入式区域应用使用指南