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

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

若因某些情況導致公式未在資料建立時就觸發,而你希望在資料儲存後自動重算公式,可以考慮利用程式,在資料儲存完成後自動執行公式重算。

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

調整方式:

1. 將 Key Field 填入表單的 Key Field ID,此資訊可以從 Javascript 工作流程編輯器(選擇 Pre-workflow 時的頁面)中找到,或是從資料庫定義文件查詢。

以上圖表單範例來說,這一行程式碼應寫為:

var nodeId = param.getNewNodeId(3000841);

2. 將 '/tab_path/sheet_path' 改成這份表單的頁籤及表單路徑。

如果你的表單網址為 www.ragic.com/sample/sales/3?PAGEID=wSM (忽略 ?PAGEID=wSM 的部分),將這一行程式寫為:

var path = '/sales/3'; 

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樓
    使用者條款 | 隱私權政策