2025年8月14日 星期四

AppSheet 教學:如何使用 LOOKUP 函數,依據資料表權限動態顯示或隱藏 View

在開發 AppSheet 應用程式時,我們經常需要根據不同使用者的角色或權限,來決定他們能看到哪些畫面(View)。例如,管理人員可能需要看到「員工資料」和「進貨記錄」,而一般員工只能看到「銷售記錄」。

本文將教您如何利用一個「權限資料表」,搭配 LOOKUP() 函數,來動態控制每個使用者能看到的 View,實現精細的權限管理。

核心概念

我們將在後端的 Google Sheets 中建立一個「員工」資料表,用來定義每位使用者的權限。然後,在 AppSheet 中,針對每一個需要控制的 View,在其 Show if 顯示條件中設定 LOOKUP() 公式,讓 AppSheet 自動去查詢該使用者是否有權限查看此 View。


步驟一:準備權限資料表

首先,在您的 Google Sheets 中,建立一個用於管理權限的資料表,我們可以命名為「員工」。

這個資料表的結構需要包含:

  1. 使用者唯一識別欄位:通常使用「電子郵件」,因為這可以與 AppSheet 的 USEREMAIL() 函數對應。

  2. 各 View 的權限欄位:為每一個您想控制的 View 建立一個對應的欄位。欄位名稱最好與 View 的名稱完全相同,以方便管理。這些欄位的值應為 TRUE(允許查看)或 FALSE(禁止查看)。

範例如下:

員工編號姓名電子郵件進貨記錄View銷售記錄一整天代賣商品
A001蔡明和imingho@gmail.comTRUETRUETRUE
A002一整天stock0331@gmail.comTRUEFALSETRUE

在這個範例中:

  • imingho@gmail.com 可以看到所有三個 View。

  • stock0331@gmail.com 無法看到「銷售記錄」這個 View。


步驟二:設定 View 的顯示條件 (Show if)

接下來,我們回到 AppSheet 編輯器,為需要控制的 View 設定顯示公式。

  1. 在左側導覽列點擊 UX

  2. 在 Views 清單中,選擇您要設定權限的 View(例如「進貨記錄View」)。

  3. 在右側的設定面板中,找到並展開 Display 區塊。

  4. 找到 Show if 屬性,這就是我們要填寫公式的地方。


步驟三:撰寫 LOOKUP 公式

Show if 屬性會根據公式回傳的 TRUE 或 FALSE 值來決定是否顯示該 View。我們將使用 LOOKUP() 函數來達成此目的。

LOOKUP() 函數的語法如下:
LOOKUP(要尋找的值, 要在哪個資料表尋找, 要比對哪個欄位, 要回傳哪個欄位的值)

針對我們的「進貨記錄View」,在 Show if 欄位中填入以下公式:

lookup(USEREMAIL(), "員工", "電子郵件", "進貨記錄View")

讓我們來分解這個公式:

  • USEREMAIL():這是一個內建函數,會取得當前登入 AppSheet 使用者的電子郵件。這就是我們要尋找的值。

  • "員工":我們要查詢的資料表名稱。

  • "電子郵件":在「員工」表中,我們要用來比對 USEREMAIL() 的欄位。

  • "進貨記錄View":當找到符合的電子郵件後,我們要從該列回傳其「進貨記錄View」欄位的值(即 TRUE 或 FALSE)。

公式的運作邏輯:
AppSheet 會拿當前使用者的 Email,去「員工」資料表的「電子郵件」欄位中尋找符合的紀錄。一旦找到,便會回傳該紀錄中「進貨記錄View」欄位的值。如果回傳的是 TRUE,此 View 就會顯示;反之則會被隱藏。


步驟四:應用到其他 View

您可以將同樣的邏輯應用到其他需要權限控制的 View。例如,要設定「銷售記錄」View 的權限,只需將公式的最後一個參數改為對應的欄位名稱即可:

lookup(USEREMAIL(), "員工", "電子郵件", "銷售記錄")

成果與演練

設定完成後,儲存您的變更。現在,您可以透過更改「員工」資料表中的 TRUE/FALSE 值來即時控制使用者的權限。

例如,當我們將 stock0331@gmail.com 使用者的「銷售記錄」權限設為 FALSE 時:

修改前: 該使用者可以看到「銷售記錄」View。

修改後: 在 App 重新同步(Sync)資料後,「銷售記錄」View 就會從該使用者的介面上消失。



沒有留言:

張貼留言

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

【Google 表單教學】如何使用單選方格製作多項目訂購單?(含自動計算與Email通知)

您是否也曾遇過這樣的困擾?想用 Google 表單製作訂購單,但產品品項太多,特別是像點心、蛋糕這類商品,常常只是口味或尺寸上的些微差異。如果為每一個品項都建立一個問題,表單將會變得冗長不堪,讓消費者失去填寫的耐心。 今天,我們要分享一個實用的技巧,解決網友遇到的「點心蛋糕類」訂...