将列表集成到 Power Apps 时,可自定义 SharePoint 列表表单。 在本文中,你将了解这些窗体的工作原理,以及如何对其进行自定义。
为列表自定义表单时,默认生成的表单适用于所有操作,如创建、显示或编辑项目。 该功能使用生成的公式和 SharePointIntegration 控件。
备注
在 SharePoint 中创建或查看列表时,会自动跳转到 Microsoft 列表。 您可以始终在 Microsoft Lists 和 SharePoint 中找到该列表。 有关详细信息,请参阅 Microsoft 365 中的列表是什么?
了解默认生成的窗体
默认生成的表单由以下控件及其相应的默认值组成。 公式在默认值内自动生成。
FormScreen1:此屏幕包含表单。
SharePointForm1:此表单可创建、显示或编辑列表项。
数据源:自定义表单的列表。 例如,SharePoint 列表可作为数据源。
项目:从列表中选择的项目。 在 Power Apps Studio 中工作时,为方便起见,该项目将设置为列表中的
First()项。If( IsBlank(SharePointIntegration.Selected) || IsEmpty(SharePointIntegration.Selected), First('*YourListName*'), SharePointIntegration.Selected )提示
本公式模式使用
... SharePointDatasourceName.Selected,适用于表单的项目属性。 有关设置 SharePoint 记录值的公式模式,请参阅 SharePointIntegration 对象的常见问题。
OnSuccess:项目成功创建或保存后,表单将重置,SharePoint 会隐藏该表单。
ResetForm(SharePointForm1); RequestHide()SharePointIntegration:在 SharePoint 与 Power Apps 之间传递用户操作。
属性 描述 示例 数据源 为其自定义窗体的列表。 YourListName OnNew 将 SharePointForm1 设置为新模式。 NewForm(SharePointForm1) OnView 将 SharePointForm1 设置为视图模式。 ViewForm(SharePointForm1) OnEdit 将 SharePointForm1 设置为编辑模式。 EditForm(SharePointForm1) OnSave 提交对 SharePointForm1 的更改。 成功提交表单时,将执行 SharePointForm1.OnSuccess 公式。 SubmitForm(SharePointForm1) OnCancel 重置对 SharePointForm1 的更改。 当用户在 SharePoint 中选择取消时,SharePoint 总是会隐藏窗体。 ResetForm(SharePointForm1)
这些默认值可确保表单在 SharePoint 内运行时正常工作。 默认设置会根据用户在 SharePoint 中的交互动态调整 Power Apps 表单模式,并确保更改提交至 SharePoint。
备注
虽然可以将表单从一个环境手动复制到另一个环境,但 Power Apps 目前无法自动将表单从一个环境复制到另一个环境。
了解 SharePointIntegration 控件
SharePointIntegration 控件负责在 SharePoint 与 Power Apps 间传递用户操作。
备注
仅当窗体在 SharePoint 中运行时,而不是在 Power Apps Studio 中自定义窗体时,才能访问 SharePointIntegration 控件的属性。 这些属性可能无法在 OnStart 或 OnVisible 中使用。
SharePointIntegration 控件具有这些属性:
| 属性 | 效果或描述 |
|---|---|
| Selected | 从列表中选中的项目。 |
| OnNew | 当用户选择新建按钮或打开 SharePoint 中的创建项目表单时激活。 |
| OnView | 当用户选择项目或打开 SharePoint 中的项目详情表单时激活。 |
| OnEdit | 当用户选择编辑全部按钮或打开 SharePoint 中的编辑项目表单时激活。 |
| OnSave | 当用户选择 SharePoint 中的保存按钮时激活。 |
| OnCancel | 当用户选择 SharePoint 中的取消按钮时激活。 |
| SelectedListItemID | 列表中选定项目的项目 ID。 |
| 数据源 | 列表中包含表单显示、编辑或创建的记录。 如果更改此属性,Selected 和 SelectedItemID 属性可能会停止工作。 |
自定义默认窗体
可修改公式以进一步定制表单。
在自定义表单时,请考虑以下策略:
使用
SharePointIntegration控件的 OnSave 公式自定义用户在 SharePoint 中选择保存时的效果。 如果有多个窗体,请确保只提交当前正在使用的窗体的更改。提示
为 OnNew、OnView 和 OnEdit 公式中的变量设置不同的值。 您可以在 OnSave 公式中使用此变量,以确定正在使用的窗体。
在所有表单的 OnSuccess 公式中包含 RequestHide() 函数。 没有这个函数,SharePoint 就不知道何时隐藏表单。 请避免在调用 RequestHide()之后运行重要代码。 代码应该在窗体仍然可见并能够运行逻辑时运行。
当用户在 SharePoint 中选择取消时,您无法控制表单的隐藏。 请务必在
SharePointIntegration控件的 OnCancel 公式中重置表单。在 OnStart 或 OnVisible 中可能无法使用
SharePointIntegration控件的属性。 这些事件在加载列表时仅执行一次。 您可以使用 OnNew、OnView 或 OnEdit 在向用户显示表单之前运行逻辑。
SharePointIntegration 对象的常见问题
在
SharepointIntegration.Selected属性上将集合的值设置为集合时,它不显示最新值。 若要解决此问题,请使用SharepointIntegration.SelectedListItemID,然后对表执行查找以获取 selectedRecord。例如,对于 OnView 属性:
不使用:
Set( selectedItem, SharePointIntegration.Selected );使用:
Set( selectedLookupItem, LookUp( YourSharepointIntegrationObject, ID=SharePointIntegration.SelectedListItemID ) );
关闭 Power Apps 窗体时,不会重置集合变量。 状态将保持整个会话期间有效。 如果需要重置变量,请在对象的 OnView 属性
SharePointIntegration中清除它们。不要在
SharePointIntegration属性(如 OnNew 和 OnView)中使用 Launch() 等命令函数。 这种用法可能会导致意想不到的行为,因为即使表单不可见,SharePointIntegration生命周期事件(如选择更改)也可能在后台触发。
了解用户对自定义表单的访问权限
无法手动共享使用 Power Apps 自定义的 SharePoint 表单。 相反,对链接的 SharePoint 列表具有至少 “读取 ”或 “受限视图 ”访问权限的任何用户将继承对表单的访问权限。 仅向列表中特定项授予权限的用户无权访问自定义窗体。