常見問題
遇到問題了嗎?不用擔心,答案都在這。
全站搜尋

一筆資料存檔後自動執行公式重算

如果因某些情況你的公式並不會在資料建立時就觸發,希望資料存檔後可以自動重算公式的話,你可以考慮利用程式幫助你在資料存檔後自動執行公式重算。

步驟一: 打開 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);

回最上面

    馬上註冊
    免費試用 Ragic!

    用 Google 帳號註冊

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