如果因某些情況你的公式並不會在資料建立時就觸發,希望資料存檔後可以自動重算公式的話,你可以考慮利用程式幫助你在資料存檔後自動執行公式重算。
步驟一: 打開 Javascript 工作流程編輯器
從上方頁籤列中找到你要增加此段程式碼的表單,點擊表單名稱旁的三角形符號,並選擇 Javascript工作流程來進入工作流程模組.
步驟二:切換至 Post-workflow
將以下程式碼複製貼上並調整後儲存
var nodeId = param.getNewNodeId(Key Field); var path = '/tab_path/sheet_path'; var query = db.getAPIQuery(path); var entry = query.getAPIEntry(nodeId); entry.recalculateAllFormulas(); entry.setIfDoLnls(true); entry.setCreateHistory(true); entry.save();
請將Key Field填入你表單的Key Field id,此資訊可以從Javascript 工作流程編輯器中找到,或是你可以從 資料庫定義文件查詢。
以這份文件中所用的表單範例來說,這一行程式碼應寫為
var nodeId = param.getNewNodeId(3000210);
並且將 '/tab_path/sheet_path'改成您自己表單的頁籤及表單路徑。
例如 如果你的表單網址為 'www.ragic.com/sample/sales/3',那這一行程式就會寫為:
var path = '/sales/3';
如果你只想要重算指定的欄位公式,而非全部欄位的公式的話,那你可以把這一行程式碼
entry.recalculateAllFormulas();
改成
entry.recalculateFormula(field id);
例如只針對某三個欄位(欄位id: 1000001、1000002、1000003)進行公式重算,
將要重算的欄位其id填入field id,一個欄位為一行, 所以要重算三個欄位的公式則會寫成:
entry.recalculateFormula(1000001); entry.recalculateFormula(1000002); entry.recalculateFormula(1000003);