了解 SharePoint 表單整合
現在您可以在 Power Apps 中輕鬆自訂任何 Microsoft Lists 或 SharePoint 程式庫表單。 在本文中,我們將逐步說明這些表單的運作方式,以及如何自訂這些表單的詳細資訊。
如果您已針對清單自訂一個表單,您可能已注意到預設產生的表單適用於所有作業,例如建立、顯示或編輯項目。 這是在所產生的公式和 SharePointIntegration 控制項的協助下完成的。
瞭解預設產生的表單
預設產生的表單是由下列控制項和與其對應的預設值所組成:
表單畫面 1 - 這是包含表單的 screen。
SharePoint 表單 1 - 這是用於建立、顯示或編輯清單項目的 form。
資料來源 - 已自訂表單的清單。
項目 - 從清單中選取的項目。 這已設定為清單中的 First() 項目,方便您在 Power Apps Studio 中使用。
If( IsBlank(SharePointIntegration.Selected) || IsEmpty(SharePointIntegration.Selected), First('*YourListName*'), SharePointIntegration.Selected )
提示
上述公式模式 (使用
... SharePointDatasourceName.Selected
) 適於表單的項目屬性。 請查看下方區段,以在公式模式中設定 SharePoint 記錄值。
OnSuccess - 一旦成功建立或儲存項目,此表單就會重設且 SharePoint 會隱藏表單。
ResetForm(SharePointForm1); RequestHide()
SharePointIntegration - 負責在 SharePoint 與 Power Apps 之間溝通使用者動作的控制項。
資料來源 - 已自訂表單的清單。
'YourListName'
OnNew - 在新模式中設定SharePoint 表單 1。
NewForm(SharePointForm1)
OnView - 在檢視模式中設定 SharePoint 表單 1。
ViewForm(SharePointForm1)
OnEdit - 在編輯模式中設定 SharePoint 表單 1。
EditForm(SharePointForm1)
OnSave - 將變更提交至 SharePoint 表單 1。 成功提交表單時,系統會執行 SharePointForm1.OnSuccess 公式。
SubmitForm(SharePointForm1)
OnCancel - 將變更重設到 SharePoint 表單 1。 當使用者在中 SharePoint 選擇取消時,SharePoint 將永遠隱藏表單。
ResetForm(SharePointForm1)
這些預設值可確保表單在 SharePoint 中執行時可正常運作 - 當使用者在 SharePoint 中與表單互動時,預設值會變更 Power Apps 表單模式,並確保變更會提交到 SharePoint。
瞭解 SharePointIntegration 控制項
SharePointIntegration 控制項在 SharePoint 與 Power Apps 之間溝通使用者動作。
注意
您只能在表單於 SharePoint 中執行時才可存取 SharePointIntegration 控制項的屬性,在 Power Apps Studio 中自訂表單時則無法存取。 這些屬性可能無法用於 OnStart 或 OnVisible。
SharePointIntegration 控制項具有下列屬性:
Selected - 從清單中選取的項目。
OnNew - 當使用者選取新增按鈕或打開 SharePoint 中的建立專案表單時,要執行的動作。
OnView - 當使用者選取項目按鈕或打開 SharePoint 中的項目細節表單時,要執行的動作。
OnEdit - 當使用者選取編輯所有按鈕或打開 SharePoint 中的編輯項目表單時,要執行的動作。
OnSave - 當使用者在 SharePoint 中選取儲存按鈕時,要執行的動作。
OnCancel - 當使用者在 SharePoint 中選取取消按鈕時,要執行的動作。
SelectedListItemID - 清單中所選項目的項目識別碼。
Data Source – 包含表單將顯示、編輯或建立之記錄的清單。 如果您變更這個屬性,則 Selected 和 SelectedItemID 屬性可能會停止運作。
自訂預設表單
您現在已更加了解預設產生的表單和 SharePointIntegration 控制項,您可以變更公式以進一步自訂表單。 當您自訂表單時,請記住下列事項:
使用 SharePointIntegration 控制項的 OnSave 公式,自訂當使用者選擇 SharePoint 中的儲存會發生什麼狀況。 如果您有多個表單,請確定只提交您目前使用之表單的變更。
提示
針對 OnNew、OnView 和 OnEdit 公式中的某個變數設定不同的值。 您可以在 OnSave 公式中使用此變數來決定要使用的表單。
務必在所有表單的 OnSuccess 公式中包含 RequestHide()。 如果您忘記此事,SharePoint 不知道何時要隱藏表單。 此外,還要避免在呼叫 RequestHide() 後執行重要的程式碼,讓所有程式碼都會在表單仍然可見且能執行邏輯時執行。
您無法控制當使用者在 SharePoint 中選擇取消時是否隱藏表單,所以務必在 SharePointIntegration 控制項的 OnCancel 公式中重設您的表單。
SharePointIntegration 控制項的屬性可能無法用於 OnStart 或 OnVisible,那些事件只會在載入清單時執行一次。 您可以使用 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 生命週期事件 (例如,選擇變更) 也可能在背景觸發。
另請參閱
- EditForm、NewForm、SubmitForm、ResetForm 和 ViewForm 函數 - Power Apps 中的表單函數
- RequestHide 函數
- SharePoint 整合案例