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

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

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

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

    請告訴我們您的意見:(多選, 必填)

    請針對上方勾選項目提供詳細說明:

    截圖能夠讓我們更清楚了解您的建議:

    感謝您的寶貴意見!

    馬上註冊
    免費試用 Ragic!

    用 Google 帳號註冊

    立即科技 Ragic, Inc.
    02-7728-8692
    info@ragic.com
    台北市中正區南昌路二段81號9樓
    使用者條款 | 隱私權政策