2025年7月8日 星期二

AppSheet 教學:如何利用 SELECT 製作二層關連的下拉式選項

在開發 AppSheet 應用時,我們經常需要製作「關連式」或「依賴式」的下拉選單。舉例來說,當使用者在第一個下拉選單選擇了「分類」後,第二個下拉選單的「項目」選項能自動篩選出與該分類相關的內容。這種設計能大幅提升使用者體驗,避免在長長的列表中尋找資料。

先前我們介紹過使用 資料表名稱[欄位名稱] 的方式來快速建立下拉選單,但這種方法無法處理二層以上的關連篩選。今天,我們將深入探討如何利用強大的 SELECT() 函數來完美實現這個功能。

應用情境:收支紀錄 App

讓我們以一個常見的「收支紀錄」App 為例。我們希望有兩個欄位:

  1. 分類:例如「食」、「衣」、「住」、「行」、「娛樂」、「兼差」等。

  2. 項目:當「分類」選擇「食」,「項目」選單就只出現「早餐」、「午餐」、「晚餐」等選項;當「分類」選擇「行」,「項目」就只出現「加油」、「停車費」等選項。

Step 1:設定第一層下拉選單 (分類)

首先,我們設定第一層的「分類」選單。這個比較簡單,我們希望它能顯示所有已經存在於資料表中的「分類」,並且自動排除重複的項目。

我們可以在「分類」欄位的設定中,找到 Suggested values(建議值)欄位,並填入以下公式:

Generated code

SORT(收支紀錄[分類], false)

  • 收支紀錄[分類]:這個寫法會自動從 收支紀錄 這張資料表中,抓取所有 分類 欄位的值,並自動去除重複項。

  • SORT(..., false):將取得的列表進行排序。false 參數代表不進行遞增排序(即保持或進行遞減排序,這裡主要目的是取得一個排序過的列表)。

如此一來,第一層的選單就完成了。使用者不僅可以從現有選項中選擇,也可以直接輸入新的分類(例如「娛樂」),儲存後,這個新分類就會自動加入到下次的選項中。

Step 2:設定第二層關連選單 (項目) - 核心技巧

接下來是本篇的重點:設定與「分類」連動的「項目」選單。我們需要使用 SELECT() 函數來達成條件篩選。

請在「項目」欄位的 Suggested values 中,輸入以下公式:

Generated code

SORT(SELECT(收支紀錄[項目], ([分類] = [_THISROW].[分類])), false)

讓我們來分解這個公式:

  1. SELECT(資料來源, 篩選條件)

    • 這是整個公式的核心,它的作用是從一個資料來源中,根據你設定的條件,篩選出符合的資料。

  2. 收支紀錄[項目]

    • 這是 SELECT 的第一個參數,代表「我想要從 」。

  3. ([分類] = [_THISROW].[分類])

    • 這是 SELECT 的第二個參數,也就是最重要的「篩選條件」。這段條件的解讀方式如下:

      • 等號左邊的 [分類]:指的是 SELECT 正在掃描的 收支紀錄 資料表中每一筆紀錄的「分類」欄位。

      • 等號右邊的 [_THISROW].[分類]:這是關鍵![_THISROW] 代表「使用者當前正在填寫的這一筆表單」。所以 [_THISROW].[分類] 指的就是使用者在同一個表單上,剛剛在第一個下拉選單所選擇的「分類」值。

    • 綜合起來,這個條件的意思是:「請找出所有資料,條件是該筆資料的『分類』值,必須等於我現在正在填的這張表單上所選擇的『分類』值。

  4. SORT(..., false)

    • 與第一步相同,將 SELECT 篩選出來的結果進行排序,讓選項列表更加整齊。

運作原理與優點

透過這個公式,AppSheet 會動態地執行以下操作:

  1. 使用者在表單中選擇一個「分類」,例如「食」。

  2. AppSheet 馬上在 項目 欄位觸發 SELECT 公式。

  3. 公式會掃描 收支紀錄 整張資料表,找出所有 分類 欄位等於「食」的紀錄。

  4. 接著,它會將這些符合條件的紀錄中的 項目 欄位值(例如「早餐」、「午餐」)收集起來,形成一個列表。

  5. 最後,將這個列表顯示在「項目」的下拉選單中。

這種做法最大的優點是完全動態。你不需要預先建立好所有分類與項目的對應表。只要使用者在日常使用中增加了新的紀錄,例如在「食」分類下新增了一筆「下午茶」的支出,下次當他再選擇「食」分類時,「下午茶」就會自動成為可選項目之一。

總結

SELECT() 函數是 AppSheet 中進行資料篩選與查詢的利器。學會使用 SELECT() 搭配 [_THISROW],你就能輕鬆打造出反應靈敏、使用者體驗極佳的二層、甚至多層關連式下拉選單,讓你的 App 更加專業與智慧化。



沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。

AppSheet 教學:如何利用 SELECT 製作二層關連的下拉式選項

在開發 AppSheet 應用時,我們經常需要製作「關連式」或「依賴式」的下拉選單。舉例來說,當使用者在第一個下拉選單選擇了「分類」後,第二個下拉選單的「項目」選項能自動篩選出與該分類相關的內容。這種設計能大幅提升使用者體驗,避免在長長的列表中尋找資料。 先前我們介紹過使用  資...