在開發 AppSheet 應用時,我們經常需要製作「關連式」或「依賴式」的下拉選單。舉例來說,當使用者在第一個下拉選單選擇了「分類」後,第二個下拉選單的「項目」選項能自動篩選出與該分類相關的內容。這種設計能大幅提升使用者體驗,避免在長長的列表中尋找資料。
應用情境:收支紀錄 App
分類:例如「食」、「衣」、「住」、「行」、「娛樂」、「兼差」等。 項目:當「分類」選擇「食」,「項目」選單就只出現「早餐」、「午餐」、「晚餐」等選項;當「分類」選擇「行」,「項目」就只出現「加油」、「停車費」等選項。
Step 1:設定第一層下拉選單 (分類)
收支紀錄[分類]:這個寫法會自動從 收支紀錄 這張資料表中,抓取所有 分類 欄位的值,並自動去除重複項。 SORT(..., false):將取得的列表進行排序。false 參數代表不進行遞增排序(即保持或進行遞減排序,這裡主要目的是取得一個排序過的列表)。
Step 2:設定第二層關連選單 (項目) - 核心技巧
SELECT(資料來源, 篩選條件) 這是整個公式的核心,它的作用是從一個資料來源中,根據你設定的條件,篩選出符合的資料。
收支紀錄[項目] 這是 SELECT 的第一個參數,代表「我想要從 」。
([分類] = [_THISROW].[分類]) 這是 SELECT 的第二個參數,也就是最重要的「篩選條件」。這段條件的解讀方式如下: 等號左邊的 [分類]:指的是 SELECT 正在掃描的 收支紀錄 資料表中每一筆紀錄的「分類」欄位。 等號右邊的 [_THISROW].[分類]:這是關鍵![_THISROW] 代表「使用者當前正在填寫的這一筆表單」。所以 [_THISROW].[分類] 指的就是使用者在同一個表單上,剛剛在第一個下拉選單所選擇的「分類」值。
綜合起來,這個條件的意思是:「請找出所有資料,條件是該筆資料的『分類』值,必須等於我現在正在填的這張表單上所選擇的『分類』值。」
SORT(..., false) 與第一步相同,將 SELECT 篩選出來的結果進行排序,讓選項列表更加整齊。
運作原理與優點
使用者在表單中選擇一個「分類」,例如「食」。 AppSheet 馬上在 項目 欄位觸發 SELECT 公式。 公式會掃描 收支紀錄 整張資料表,找出所有 分類 欄位等於「食」的紀錄。 接著,它會將這些符合條件的紀錄中的 項目 欄位值(例如「早餐」、「午餐」)收集起來,形成一個列表。 最後,將這個列表顯示在「項目」的下拉選單中。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。