設計手冊
遇到問題了嗎?不用擔心,答案都在這。
全站搜尋

更新別張表單欄位值

如果你希望在表單 A 的資料可以去改變表單 B 的資料,例如一張訂單確認出貨之後,可以扣該商品的庫存,這一類需求就可以利用更新別張表單欄位值按鈕。以下將用扣庫存來示範這個功能,假設有兩張表單,左邊是「銷售訂單」,右邊是「商品資料」。

建立更新別張表單欄位值按鈕

由於是要從「銷售訂單」的資料去影響「商品資料」中的庫存,因此要在「銷售訂單」中設定按鈕。進入表單頁設計模式後,選擇 表單工具,並在 自訂按鈕下找到更新別張表單的欄位值

在視窗中設定要更新的表單,接著設定怎麼更新以及在什麼情況下更新。

怎麼更新庫存表單的欄位值

將銷售訂單的「數量」欄位

更新到:「-」(因為是要扣庫存,所以選擇「減」;若是設定入庫則選擇「加」)

商品表單的「總數量」欄位

如果要一次更新多個欄位的話,可以按「+」來新增,更新欄位值的順序是由上往下執行的。

更新商品表單的欄位值的條件

當銷售訂單的欄位:商品編號

「等於」

商品資料的欄位:商品編號

如果有多個條件的話,可以按「+」來新增條件。設定多組條件的話,會在全部條件都滿足的情況下才可以執行按鈕。假設條件有誤會無法儲存按鈕設定,可以參考這篇來看常見的錯誤設定。

進階設定

重新計算表單中的公式:假如你的目的表單中有其他欄位設有公式並參照到資料更新影響的欄位,記得勾選,如此以來,資料如果有透過資料更新動作按鈕被更新的話,設有參照這個欄位的公式才會被重新運算。

建立復原按鈕:預設會勾選,多建立一個復原資料更新動作的按鈕,按此動作按鈕可以復原之前按下資料更新按鈕的結果。

儲存時自動執行:儲存新增或更新資料時,系統自動執行更新別張表單欄位值的動作。會確保只有以最新的資料來做更新,而一張表單只能有一組自動執行的更新別張表單欄位值按鈕。

完成後,按建立更新別張表單欄位值動作按鈕,並命名按鈕。該按鈕就會被新增在表單設定下的動作按鈕中。每筆資料的表單頁中右下角也可以看到該按鈕。

離開前記得儲存設計!

系統產生的日期時間欄位

新增此按鈕的同時,系統會幫你新增了一個日期時間欄位,這個欄位用來自動紀錄動作按鈕執行的日期及時間。更新別張表單欄位值動作按鈕會需要此欄位作為依據,因此請勿刪除這個欄位!

如果是 2017/06/01 之後新增或修改此動作按鈕的話,建議將此日期時間欄位設成唯讀,避免使用者手動修改動作按鈕執行結果的判斷日期。

如果是 2023/03/21 之後建立此按鈕所自動產生的記錄執行時間欄位會有不可刪除的屬性,要先刪除按鈕之後才能刪除此欄位。

執行更新別張表單欄位值按鈕

在「銷售訂單」中可以看到,選擇「單人座扶手椅」這個商品時,列表中顯示目前該商品的庫存為 35,而資料中的出庫數量為 15。

新增並儲存了這張訂單後,按右下方的「扣庫存」按鈕。

系統會跳出訊息告訴你資料已經更新,並在系統建立的日期時間欄位自動填上執行動作的日期及時間。

該商品庫存已經被扣減 15,變為 20。

要復原「扣庫存」的話,可以按下「復原扣庫存」動作按鈕(有勾選「建立復原按鈕」的話,才會看到「復原扣庫存」按鈕)。按完之後,會發現系統建立的日期時間欄位值被清空了,代表目前是沒有執行過更新別張表單欄位值(扣庫存)的動作。

(如果你是2017/06/01以前新增此動作按鈕,並且沒有在此之後修改該動作按鈕設定的話,請參考這篇說明來執行復原動作。)

執行完成後,該商品的庫存數量就會復原到扣減前。

復原動作按鈕執行說明( 2017/06/01 前後)

舊的更新別張表單欄位值按鈕設計要執行復原動作,需先手動將系統的日期時間欄位值清空,再按「復原扣庫存」動作按鈕。

以下為復原按鈕在新舊(新舊分界為 2017/06/01)設計上的差異:

舊版:檢查最後修改日期是否為空,若是則執行並更新最後修改日期。無防止連續執行復原之機制,只要判斷的日期時間欄位為空即可按復原動作按鈕,可能執行多次復原。

新版:直接執行,並自動清空最後修改日期時間。若最後修改日期為空,則不執行復原,並回傳執行成功(視為沒有更新過,可避免連續執行復原)。

進階設定:套用子表格篩選條件

當更新別張表單欄位值有包含子表格欄位時,可以套用篩選條件來只更新符合條件的子表格資料。例如在「出庫單」要透過按鈕扣庫時,或許最後只出貨了其中兩項商品,而你的子表格中有欄位記錄「確定出貨」的話,就可以搭配套用篩選條件。

以下圖為例,「出庫單」中原本有三個項目,但最後只出其中兩項,子表格中也有欄位記錄是哪兩個項目:

在進階設定中選擇套用子表格篩選條件

根據設定的條件,執行按鈕後就只會扣除有「確定出貨」的子表格項目數量。

如何重複執行更新別張表單欄位值動作按鈕

預設情況下,每一筆資料中一個更新別張表單欄位值動作按鈕只能執行一次,系統會透過檢查執行時間欄位是否有值來避免重複執行。而需要重複執行的使用情境通常有兩種:

1. 表單內容需要更新,希望針對新增的資料再次執行

此類重複執行通常更新方式為「+ 加、- 減」,若直接再次執行會造成重複加減的問題,因此會需要先執行復原動作按鈕,調整好資料後再重新執行。舉例來說,如果有一張「出庫單」中的子表格原本有兩列品項,且已經執行過扣庫存動作按鈕,而你希望新增第三列品項並且執行出庫,操作步驟應為:

步驟ㄧ:執行復原動作按鈕

為復原既有兩列品項的庫存,以避免後續重複扣庫存。執行復原動作按鈕時,系統會以現有的資料反向執行,例如若原本減去 3 個庫存,那麼會以現有的資料再加回 3 個庫存,並同時清空執行時間欄位的欄位值。

步驟二:於子表格中新增第三列品項,完成後再次執行扣庫存動作按鈕。

2. 表單內容會持續更新,希望每一次儲存都觸發動作按鈕並更新目的表單的值

此類重複執行通常更新方式為「= 等於」。舉例來說,來源表單和目的表單直接沒有連結關係,但你希望 A 表單的欄位值每一次變更都可以隨時更新到 B 表單上,可以參考以下設定:

步驟一:建立更新別張表單欄位值動作按鈕時,在進階設定中勾選「儲存時自動執行」。

步驟二:在系統建立的執行時間欄位套用公式「" "」,代表自動填入空值,以便下次再次執行。

常見錯誤

1. 要做加減運算,更新別張表單欄位值所依據的來源欄位及被更新的目的欄位都必須是數字欄位;而填入字串的話請用「=」。

2. 需設定至少一組的更新條件。

3. 設定不同組條件時,目標條件欄位不能被重複設定。

4. 設定更新別張表單欄位值動作按鈕時系統所幫你新增的日期時間欄位不能移除,否則此動作按鈕會無效。但你可以重新命名此欄位或是隱藏。

5. 舊版不能在記錄動作日期時間欄位已經值的情況下,再按一次更新別張表單欄位值的動作按鈕或是復原動作按鈕,如果要按兩次動作按鈕的話,要先把記錄日期時間欄位的值清空。

6. 有多個更新別張表單欄位值的動作時,只能針對其中一個來設定儲存時自動執行

移除動作按鈕

關於移除動作按鈕可以參考這篇

或是要針對動作按鈕做附加設定的話,例如限制使用使用動作按鈕的權限等,可以參考這篇說明

回最上面 目錄

馬上註冊
免費試用 Ragic!

用 Google 帳號註冊

立即科技 Ragic, Inc.
02-7728-8692
台北市中正區南昌路二段81號9樓