将列表集成到 Power Apps 中时,您可以为 SharePoint 列表自定义表单。 在本文中,您将了解这些窗体的工作原理以及如何自定义它们。
为列表自定义表单时,默认生成的表单适用于所有操作,如创建、显示或编辑项目。 该功能使用生成的公式和 SharePointIntegration 控件。
备注
在 SharePoint 中创建或查看列表时,会自动跳转到 Microsoft 列表。 在 Microsoft 列表和 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 之间传递用户操作。
属性 Description 示例 数据源 为其自定义窗体的列表。 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
的值设置为 OnView 属性上的集合时,它不显示最新值。 解决此问题的推荐方法是使用SharepointIntegration.SelectedListItemID
,然后对表执行查找来获取 selectedRecord。例如,对于 OnView 属性:
不使用:
Set( selectedItem, SharePointIntegration.Selected );
使用:
Set( selectedLookupItem, LookUp( YourSharepointIntegrationObject, ID=SharePointIntegration.SelectedListItemID ) );
关闭 Power Apps 窗体时不会重置集合变量,状态在整个会话中保持不变。 如果有任何需要重置变量的用例,请清除
SharePointIntegration
对象 OnView 属性中的变量。不要在
SharePointIntegration
属性(如 OnNew 和 OnView)中使用 Launch() 等命令函数。 这种用法可能会导致意想不到的行为,因为即使表单不可见,SharePointIntegration
生命周期事件(如选择更改)也可能在后台触发。