在畫布應用程式中建立相依的下拉式清單
當您建立相依 (或層疊) 下拉式清單時,使用者可在清單中選取選項,以篩選另一個清單中的選項。 許多組織會建立相依清單,協助使用者更加有效地填寫表單。 例如,使用者可以選取國家或地區來篩選城市清單,或者使用者可以選取類別來只顯示該類別中的程式碼。
最佳的作法是,為「上層」與「孩子」清單中的值建立資料來源 (例如,國家/地區和城市),與使用者使用應用程式更新的資料來源不同。 如果您採用這種方法,則可以在多個應用程式中使用相同的上層和子資料,而且您可以更新該資料,而不需要重新發佈應用程式或使用它們的應用程式。 您可以使用集合或靜態資料來完成相同的結果,但是不建議在企業案例中使用它。
在此主題的案例中,將員工透過表單將問題提交至 Incidents 清單。 員工不僅指定發生事件的商店位置,也指定該地點的部門。 並非所有的地點都有相同的部門,所以位置清單可確保員工無法為不具備該部門的地點指定部門。
注意
本文用使用 Microsoft Lists 建立的清單做為資料來源。 但所有表格式資料來源的運作方式都相同。 在 Dataverse for Teams 中,您需要啟用傳統控制項,以取得適用於此案例的傳統下拉式清單。
建立資料來源
Locations 清單顯示每個位置的部門。
地點 | 部門 |
---|---|
伊根維爾 | 麵包店 |
伊根維爾 | 熟食店 |
伊根維爾 | 製造 |
倫弗魯 | 麵包店 |
倫弗魯 | 熟食店 |
倫弗魯 | 製造 |
倫弗魯 | 藥房 |
倫弗魯 | 花卉 |
彭布羅克 | 麵包店 |
彭布羅克 | 熟食店 |
彭布羅克 | 製造 |
彭布羅克 | 花卉 |
Incidents 清單顯示每個事件的連絡人資訊和資訊。 建立日期欄做為 Date欄,但是將其他欄建立為 Single line of text 以簡化設定並避免 Microsoft Power Apps 中的委派 警告。
名字 | 姓氏 | 電話號碼 | 地點 | 部門 | 描述 | 日期 |
---|---|---|---|---|---|---|
譚雅 | 科爾特斯 | (206) 555 - 1022 | 伊根維爾 | 製造 | 我對...有問題 | 2/12/2019 |
摩西 | 拉弗萊姆 | (425) 555 - 1044 | 倫弗魯 | 芙蘿爾 | 我遇到問題... | 2/13/2019 |
根據預設,清單包括無法重新命名或移除的標題資料行,且它必須包含資料,然後才能將項目儲存在清單中。 若要設定欄,讓它不需要資料:
- 選取靠近右上角的齒輪圖示,然後選取 List settings。
- 在 Setting 頁面上,選取清單中的 Title 欄。
- 在 Require that this column contains information,選取 No。
在這個變更之後,您可以忽略標題行,或者,如果至少出現一個其他行,您可以從預設視圖 移除它。
開啟表單
開啟事件清單,然後選取整合 -> Power Apps -> 自訂表單。
瀏覽器索引標籤會以中的預設表單打開 Power Apps Studio。
(非必要) 在 Fields窗格中,停留在 Title 欄位上,選取顯示的省略號(...),然後選取 Remove。
如果您已關閉 Fields 窗格,您可以選取左導覽列的 SharePointForm1,然後選取右邊窗格的 Properties 索引標籤的 Edit 欄,來再次打開它。
(非必要) 重複上一個步驟,從表單移除附件欄位。
表單只會顯示您新增的欄位。
取代控制項
在欄位窗格中,選取位置旁邊的箭頭。
如果您已關閉欄位窗格,您可以選取左瀏覽列的 SharePointForm1,然後選取右邊窗格的屬性索引標籤的 編輯欄位,來再次打開它。
打開控制項類型清單,然後選取允許的值。
輸入機制會變更為下拉式選單控制項。
針對 Department 卡重複上述步驟 。
新增位置清單
選取 View > Data Sources > Add data source。
選取或建立 SharePoint 連接,然後指定包含 Locations 清單的網站 。
選取該清單的核取方塊,然後選取 Connect。
連接清單會顯示表單所依據的 Incidents 清單,以及要在表單中標識位置和部門的 Locations 清單。
解除鎖定卡片
選取 Location卡片,在右窗格中選取 Advanced 索引標籤,然後選取 Unlock to change properties。
針對 Department卡重複前一個步驟。
將控制項重新命名為
若您將控制項重新命名,您可以更輕鬆地識別它們,而且範例也更容易進行。 若要找出其他的最佳作法,請查閱 編碼標準和準則白皮書 。
在 Location 卡片中,選取 下拉式選單控制項。
在右邊窗格的頂端附近,輸入或黏貼 ddLocation 以重新命名選取的控制項 。
重複在 Department卡片中的前兩個步驟 ,將下拉式選單控制項重新命名 為 ddDepartment。
設定位置
將 ddlocation 的 Items 屬性設定為以下公式︰
Distinct(Locations, Location)
(非必要) 按住 ALT 鍵,打開 ddLocation,確認清單顯示三個位置。
設定部門
選取 ddDepartment,然後在右邊窗格的 Properties 索引標籤上選取 Depends on.
在 Parent control,確定 ddLocation 出現在上方的清單中,而且 Result 出現在下部的清單中。
注意
如果您不想要符合字串資料列的實際 ID,請選取 ID而不是 Result。
在 Matching field 底下選取上方清單中的 Locations,並選取下方清單中 Location,然後選取 Apply。
將 ddDepartment 的 Items 屬性設定為以下公式︰
Filter(Locations, Location = ddLocation.Selected.Result)
此公式會根據使用者在 ddLocation 中所選取的專案來篩選 ddDepartment的專案 。 如此的設定可確保部門的「子項」清單反映其「上層」位置的資料,因為 SharePoint 中的 Locations 清單會指定。
在右側窗格的 Properties 索引標籤上,打開 Value 旁的清單,然後選取 Department。
此步驟將設定顯示文字為 SharePoint 中 Locations 清單的 Department 欄位選項。
測試表單
按住 ALT 鍵的同時,打開位置清單,選取一個,打開部門清單,然後選取一個部門清單。
地點和部門清單會反映在 SharePoint 中的 Locations 資訊。
儲存後開啟表單 (非必要)
開啟 File 功能表,並選取Save > Publish to SharePoint > Publish to SharePoint。
在左上角,選取上一步箭頭,然後選取 Back to SharePoint。
在命令列中,選取 New 開啟您的自訂表單。
常見問題集
看不到任何資料:來源為空白或有錯誤的資料。 請確認您在其中一種方式中是否要顯示控制項的正確欄位:
在右側窗格的 Properties 索引標籤上,選取下拉式清單,然後選取 Value 屬性。
選取一個組合方塊,然後確定主要文字是您要顯示的欄位。
我的子下拉是清單包含重複的項目。 發生這種現象可能是由於在 SharePoint 中使用 LookUp 欄或在 Power Apps 中使用 Choices 函數 。 若要移除重復資料,請將 Distinct 函數裝合在正確返回的資料。 其他資訊:不同函數 。
已知限制
此設定適用於允許一次選取一個的下拉式選單控制項,以及組合方塊和清單方塊控制項。 如果允許多重選取,則無法針對任何控制項使用 Depends On。 不建議將此方法用於處理 Microsoft Dataverse 中的選項。
Depends On 不支援靜態資料或集合。 若要使用這些來源來設定相依的下拉式清單,請直接在公式列中編輯運算式。 此外,Power Apps 不支援在 SharePoint 沒有任何相符資料表格的情況下使用兩個選項欄位,也不能在此 UI 中定義 Matching 欄位。