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