如果你希望在表單A的資料可以去改變表單B的資料,例如一張訂單確認出貨之後,可以扣該商品的庫存,這一類的需求可以利用這個按鈕來達到。以下我們將用扣庫存的例子來示範:
這裡有兩張表單,左邊是銷售訂單,右邊是商品表單。
由於是要從出庫單的資料去影響倉庫庫存,因此我們要在出庫單來設定「更新別張表單的欄位值」按鈕。
進入表單設計模式後,選擇 表單工具,並在 自訂按鈕下找到更新別張表單的欄位值
在視窗中可以設定更新別張表單的欄位值,這裡我們選擇要更新值的表單為「商品資料」。接著設定怎麼更新以及在什麼情況下更新。
將銷售訂單的「數量」欄位
更新到:「-」(因為是要扣庫存,所以選擇「減」;若是設定入庫則選擇「加」)
商品表單的「總數量」欄位
如果要一次更新多個欄位的話,可以按「+」來新增
注意,更新欄位值的順序是由上往下執行的。
當銷售訂單的欄位:商品編號
等於
商品資料的欄位:商品編號
如果有多個條件的話,可以按「+」來新增條件。設定多組條件的話,會在全部條件都滿足的情況下才可以執行按鈕。
注意,假設條件有誤會無法儲存按鈕設定。你可以參考 這裡來看常見的錯誤設定。
重新計算庫存表單中的公式:假如你的庫存表單中有其他欄位設有公式並參照到資料更新影響的欄位的話,記得勾選公式重算,如此以來,庫存表單中資料如果有透過資料更新動作按鈕被更新的話,設有參照這個欄位的公式才能被觸發重新運算。
建立復原按鈕:預設會勾選此選項,多建立一個復原資料更新動作的按鈕,按此動作按鈕可以幫助復原之前按下資料更新按鈕的結果。
儲存時自動執行: 儲存新增或更新資料時,系統自動執行更新別張表單欄位值的動作。(會確保只有以最新的資料來做更新) 一張表單只能有一組自動執行的更新別張表單欄位值動作按鈕。
以上設定都完成了以後,按建立更新別張表單欄位值動作按鈕,並在跳出的視窗中為你的動作按鈕命名,確認之後,該按鈕就會被新增在表單設定下的動作按鈕中。(每筆資料的表單頁中右下角可以看到該動作按鈕)
以上都確定之後,就可以儲存這次的表單設計了!
新增此動作按鈕的同時,系統也幫你新增了一個日期時間欄位,這個欄位會再你按下動作按鈕時自動填上日期及時間做為記錄。
更新別張表單欄位值動作按鈕會需要此欄位作為依據,因此請勿刪除這個欄位!
如果是 2017/06/01 之後新增或修改此動作按鈕的話,建議將此日期時間欄位設成唯讀,避免使用者手動修改動作按鈕執行結果的判斷日期。
如果是 2023/03/21 之後建立此按鈕所自動產生的記錄執行時間欄位會有不可刪除的屬性,要先刪除按鈕之後才能刪除執行時間欄位。
接著示範剛才建立的按鈕:
在此出庫單中,你可以看到,當我們選擇「單人座扶手椅」這個商品時,選擇列表中顯示目前該商品的庫存為35,而資料中的出庫數量為15。
新增並儲存了這張訂單後,你可以按右下方的「扣庫存」動作按鈕。
按下動作按鈕之後,系統會跳出訊息告訴你資料已經更新,並在系統建立的日期時間欄位自動填上執行動作的日期及時間。
該商品庫存已經被扣減15,變為20。
要復原「扣庫存」動作的話,按下「復原扣庫存」動作按鈕即可。(設計這組動作按鈕時有勾選「建立復原按鈕」的話,才會看到「復原扣庫存」按鈕)
按完之後,你會發現系統建立的日期時間欄位的值被清空了,代表目前是沒有執行過更新別張表單欄位值(扣庫存)的動作。
(如果你是2017/06/01以前新增此動作按鈕,並且沒有在此之後修改該動作按鈕設定的話,請參考這篇說明來執行復原動作。)
執行完成後,該商品的庫存數量就會復原到扣減前。
舊的更新別張表單欄位值動作按鈕設計如果要執行復原的動作的話,需先手動將記錄動作日期時間的欄位值清空,再按"復原 扣庫存"動作按鈕。
以下為復原按鈕在新舊設計上的差別說明:
復原按鈕行為新舊差異: (新舊判斷- 2017/06/01)
(舊) 檢查最後修改日期是否為空,若是則執行並更新最後修改日期
(新) 直接執行,並自動清空最後修改日期時間
(舊) 無防止連續執行復原之機制 (只要判斷的日期時間欄位為空的即可按復原動作按鈕,可能會造成執行多次復原)
(新) 若最後修改日期為空,則不執行復原,並回傳執行成功 (視為沒有更新過,可避免連續執行復原)
ps. 用舊的工具產生的動作按鈕在改版後仍可以使用,行為不變(根據舊的行為)
預設情況下,每一筆資料中一個更新別張表單欄位值動作按鈕只能執行一次,系統會透過檢查執行時間欄位是否有值來避免重複執行。而需要重複執行的使用情境通常有兩種:
此類重複執行通常更新方式為「+ 加、- 減」,若直接再次執行會造成重複加減的問題,因此會需要先執行復原動作按鈕,調整好資料後再重新執行。舉例來說,如果有一張出庫單中的子表格原本有兩列品項,且已經執行過扣庫存動作按鈕,而你希望在該張出庫單新增第三列出庫品項並且執行出庫,那麼操作方式應為:
步驟ㄧ:執行復原動作按鈕
此操作為復原既有兩列品項的庫存,以避免後續重複扣庫存。
執行復原動作按鈕時,系統會以現有的資料反向執行,例如若原本減去 3 個庫存,那麼會以現有的資料再加回 3 個庫存,並同時清空執行時間欄位的欄位值
步驟二:於子表格中新增第三列品項,完成後再次執行扣庫存動作按鈕
此類重複執行通常更新方式為「= 等於」。舉例來說,來源表單和目的表單直接沒有連結關係,但你希望 A 表單的欄位值每一次變更都可以隨時更新到 B 表單上,可以參考如下設定:
步驟一:建立更新別張表單欄位值動作按鈕時,在進階設定中勾選「儲存時自動執行」。
步驟二:在系統建立的執行時間欄位套用公式「" "」。
1. 如果是要做加減運算的話,更新別張表單欄位值所依據的來源欄位及需被更新的目標欄位都必須是數字欄位。(填入字串的話請用"=")
2. 需設定至少一組的更新別張表單欄位值條件。
3. 設定不同組條件時,目標條件欄位不能被重複設定。
4. 設定更新別張表單欄位值動作按鈕時系統所幫你新增的日期時間欄位不能移除,否則此動作按鈕會無效。(有需要的話你可以重新命名此欄位或是隱藏此日期時間欄位。)
5. (舊版)你不能在記錄動作日期時間欄位已經有記錄(值)的情況下,再按一次更新別張表單欄位值的動作按鈕或是復原動作按鈕,如果要按兩次動作按鈕的話,要先把記錄日期時間欄位的值清空。
6. 若設有多個"更新別張表單欄位值"的動作時,只能針對其中一個來設定"儲存時自動執行"。
關於移除動作按鈕可以參考這篇。
或是要針對動作按鈕做附加設定的話,例如限制使用使用動作按鈕的權限等,可以參考這篇說明。