Canvas 應用程序中的級聯下拉菜單

Canvas 應用程序中的級聯下拉菜單

在本教程中,我們將討論級聯下拉菜單的工作原理。

級聯下拉菜單是兩個或多個相互依賴的下拉菜單。

在 Power Apps 中使用時,級聯下拉菜單可以增強最終用戶的體驗,尤其是在過濾大量數據時。

目錄

添加客戶查找表

讓我們從在新屏幕上添加下拉菜單開始。

我們將通過複製主屏幕來添加一個新屏幕,這是我們在過去的教程中討論過的一種技術。我們稱此屏幕為 Item Lookup。

Canvas 應用程序中的級聯下拉菜單

然後,讓我們在屏幕上添加一個數據表。

Canvas 應用程序中的級聯下拉菜單

我們需要為我們的表添加數據源以開始顯示我們需要的記錄。讓我們通過右側的“屬性”窗格將 Table1 添加為數據源。

Canvas 應用程序中的級聯下拉菜單

然後,讓我們通過單擊“編輯字段”來添加我們需要的字段。對於此表,我們將使用 FirstName、LastName、Location 和 VIP 級別。

Canvas 應用程序中的級聯下拉菜單

現在我們的表包含了我們需要的記錄,這將用作我們的客戶查找表。

Canvas 應用程序中的級聯下拉菜單

現在,這裡的目標是讓我們能夠根據位置和 VIP 級別過濾此表中的記錄。這就是我們的下拉菜單發揮作用的地方。

添加第一個下拉菜單

讓我們轉到“插入”功能區下的“輸入”,然後單擊“下拉列表”。

Canvas 應用程序中的級聯下拉菜單

默認情況下,下拉菜單的值為 1、2 和 3。

Canvas 應用程序中的級聯下拉菜單

我們可以通過轉到右側窗格並連接我們用於客戶查找表的數據源(即 Table1)來更改下拉列表中的項目。

Canvas 應用程序中的級聯下拉菜單

然後,在值下,我們將選擇要在下拉列表中使用的列。在這種情況下,讓我們使用位置。

Canvas 應用程序中的級聯下拉菜單

完成後,我們將在下拉列表中看到所有可能的位置。但是,我們也看到了一些重複項。

Canvas 應用程序中的級聯下拉菜單

那是因為目前,它只是獲取 Location 列中的所有記錄,而不管記錄出現了多少次。為了擺脫這些重複項,我們將使用 Distinct 函數。

Distinct 函數評估特定列中的記錄並刪除所有重複項。

因此,讓我們突出顯示下拉菜單並選擇 Items 屬性。然後,我們將使用 Distinct 函數並引用 Table1 和 Location。

Canvas 應用程序中的級聯下拉菜單

一旦我們鎖定該公式,我們的下拉列表現在只有唯一的項目而沒有任何重複項。

Canvas 應用程序中的級聯下拉菜單

為了幫助我們使此下拉列表中的記錄更易於瀏覽,讓我們對項目進行排序,以便它們按字母順序顯示。我們將使用函數 SortByColumn,它通常需要一個源。在此示例中,源將是我們在 Location 列中的不同項目列表。

Canvas 應用程序中的級聯下拉菜單

它還需要一個列。在這種情況下,我們希望函數對結果本身的項目進行排序。基本上,這個結果來自我們剛剛引用的來源,即我們的不同項目列表。所以我們將參考結果。

Canvas 應用程序中的級聯下拉菜單

現在,我們已在此下拉列表中對所有獨特位置進行了排序。

Canvas 應用程序中的級聯下拉菜單

將數據表連接到下拉列表

下一步是使該表依賴於下拉列表。為此,我們將使用 Filter 函數。

因此,讓我們突出顯示數據表並轉到 Items 屬性並使用 Filter 函數。Filter 函數通常採用源和邏輯測試。在這種情況下,我們的來源是 Table1。至於邏輯測試,我們希望它等同於用戶從下拉列表中選擇的任何值。

Canvas 應用程序中的級聯下拉菜單

如果我們看一下左窗格,我們會看到我們要在此處引用的下拉列表是 Dropdown4。

Canvas 應用程序中的級聯下拉菜單

這就是我們將用於邏輯測試的元素。我們將使用 Dropdown4.Selected.Result 因為我們只想顯示基於所選項目的結果。

Canvas 應用程序中的級聯下拉菜單

現在,由於我們在下拉列表中選擇了 Australia,因此該表僅顯示將 Australia 作為位置的記錄。

Canvas 應用程序中的級聯下拉菜單

添加第二個下拉菜單

由於我們最終想要級聯我們的下拉菜單,這意味著我們至少需要兩個下拉菜單或更多。因此,讓我們添加第二個下拉菜單。這一次,它將用於根據 VIP 級別過濾我們的記錄。

在這個例子中,新的下拉菜單是 Dropdown5。

Canvas 應用程序中的級聯下拉菜單

再一次,我們需要點擊一個數據源,即 Table1。然後,我們將使用 VIP 級別作為值。

Canvas 應用程序中的級聯下拉菜單

由於 VIP 級別列中的項目很可能也有重複項,我們將再次使用 Distinct 函數,在此過程中引用 Table1 和 VIPLevel。

Canvas 應用程序中的級聯下拉菜單

這確保我們的下拉列表中沒有重複項。

Canvas 應用程序中的級聯下拉菜單

現在,讓我們也把這些項目整理一下。就像我們的第一個下拉列表一樣,我們將使用 SortByColumn,這次引用 VIPLevel 而不是 Location。

Canvas 應用程序中的級聯下拉菜單

有了這個公式,我們下拉列表中的項目現在按正確的順序排列。

Canvas 應用程序中的級聯下拉菜單

接下來,我們需要返回到我們的數據表,以確保我們不僅根據第一個下拉列表進行過濾,而且還根據第二個下拉列表進行過濾。數據表和過濾功能的好處是我們可以添加任意多的過濾條件。

因此,如果我們轉到原始公式,我們只需添加 VIPLevel = Dropdown5.Selected.Result。

Canvas 應用程序中的級聯下拉菜單

保存該公式後,我們現在可以從兩個下拉列表中選擇項目,我們的數據表將根據這兩個項目過濾記錄。例如,如果我們從 Location 下拉菜單中選擇 Singapore,並在 VIP Level 下拉菜單中選擇 1,我們最終會得到兩個與這些參數匹配的條目。

Canvas 應用程序中的級聯下拉菜單

我們可以將 VIP 級別更改為 4,它會顯示一個符合我們過濾器的結果。

Canvas 應用程序中的級聯下拉菜單

現在,請注意當我們選擇以新加坡為地點的 VIP 5 級時,桌子是如何變空的。

Canvas 應用程序中的級聯下拉菜單

這意味著新加坡沒有人屬於 VIP 級別 5。雖然這是可以理解的,但我們想要的是,如果沒有匹配的記錄,5 不會出現在第二個下拉列表中。畢竟,這就是級聯下拉菜單的意義所在。

創建級聯下拉菜單

目前,我們第二個下拉列表的 Items 屬性正在查看 Table1,從 VIPLevel 列中獲取不同的項目,並使用實際結果對它們進行排序。

Canvas 應用程序中的級聯下拉菜單

我們想要發生的是將數據源縮小到第一個下拉列表中選擇的任何內容,而不是查看整個 Table1。例如,如果用戶從 Location 下拉列表中選擇 Singapore,則 VIPLevel 下拉列表應僅顯示與 Singapore 匹配的項目,而不是整個表格。

所以我們要在這裡添加Filter函數,確保Table1是根據Location應該等同於Dropdown4.Selected.Result的條件進行過濾的。

Canvas 應用程序中的級聯下拉菜單

如果我們現在檢查我們的下拉列表,我們會看到第二個下拉列表不再顯示 5,第一個下拉列表中選擇了新加坡。

Canvas 應用程序中的級聯下拉菜單

如果我們這次查看加拿大,則顯示 VIP Level 下沒有 3。

Canvas 應用程序中的級聯下拉菜單

如果我們根據我們的原始數據源(即表 1)仔細檢查它,我們會發現在加拿大確實沒有匹配 VIPLevel 3 的數據。這意味著我們的公式有效。

Canvas 應用程序中的級聯下拉菜單


Power Apps 簡介:定義、特性、函數和重要性
Power Apps 環境:正確設置 App 元素
PowerApps 函數和公式 | 一個介紹

結論

級聯下拉列表絕對可以增強最終用戶的體驗,尤其是當您處理大量數據時。這使您的最終用戶更容易更快地找到他們需要的記錄,因為他們不必處理在過濾結果時不會產生任何結果的額外項目。

請注意,您可以根據需要刪除其他下拉菜單。您不必將自己限制在兩個下拉列表中。這意味著如果您的數據源中有更多字段,則可以添加更多下拉列表,具體取決於您希望過濾的精確程度。

一切順利,

亨利


什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

如何在 R 中保存和加載 RDS 文件

如何在 R 中保存和加載 RDS 文件

您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。

回顧前 N 個工作日——DAX 編碼語言解決方案

回顧前 N 個工作日——DAX 編碼語言解決方案

在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。

DAX Studio 中數據緩存的物化想法

DAX Studio 中數據緩存的物化想法

本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。

使用 LuckyTemplates 進行業務報告

使用 LuckyTemplates 進行業務報告

如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的