略過巡覽連結。
略過巡覽連結      
  如何透過JS動態控制Refval的Where條件? 觀看回應
舉例如下:
function dfMaster_onLoad()
{
        $('#dfMaster_欄位').refval('setWhere',"你的where條件");
}





  如何透過JS動態控制Combobox的Where條件? 觀看回應
舉例如下:
function dfMaster_onLoad()
{
        //Combobox選項來源必須來自RemoteName而非Item
        $('#dfMaster_欄位').combobox('setWhere',"你的where條件");
}





  TRS中如何使用後端來編明細表的自動序號? 觀看回應
自動序號通常在前端使用 AutoSeq組件來處理,如果要在TRS中使用自動序號的功能,需要在TRS中設定onBeforeTrans事件,如先在TRS設定好來源是"銷貨單明細.序號",目的是"庫存進出明細表.序號"(Replace模式),其實並要真正讀取來源的序號,而是利用這個機制,透過onBeforeTrans事件來動態替換來源數據來達到目的,如下:
exports.trs銷貨單明細_庫存進出明細表_onBeforeTrans = function(row, oldRow, fields,callback)
{
    var dm = this.dataModule;
    if (oldRow==null) {  // 新增的狀態才處理
        var clientInfo = dm.clientInfo;
        var sql = "SELECT MAX(序號) AS 序號 from 庫存進出明細表 Where 單據號碼='"+row.銷貨單號+"'"; // 取出對應的最大序號
        dm.queryRaw(clientInfo, clientInfo.database, sql, {}, function(err,datas) {
            if (err) callback(err);
            else if (datas.length==0 || (! datas[0].序號)) row.序號='001';  // 第一筆明細為 '001'
            else if (datas.length>0)  row.序號= ((parseInt(datas[0].序號)+1001).toString()).substring(1); // 序號+1
            callback(null, true); // callback要return true讓TRS繼續交易
        });
    }
    else {
        fields.splice(5,1); //刪除 '序號' 過帳欄位, 避免被覆蓋
        return true; // 沒有使用 callback請return true;
    }
};





  DataGrid的查詢, 我如何更換查詢條件? 觀看回應
可以透過 onQuery事件, 如下:
function dgMaster_onQuery(whereItems)
{
    for (i=0;i<whereItems.length;i++)
    {
        if (whereItems[i].field=='帳戶' && whereItems[i].value=='全部')  whereItems[i].value="";  // 如果是全部, 代表查詢為空
    }
    return true;
}





  DataGrid查詢時, 我如何在欄位名稱上加上運算式來查詢? 觀看回應
前端的 onQuery是無法改動欄位名稱或加上運算式的, 所以必須改用後端 InfoCommand的onBeforeExecuteSQL事件來處理, 如下:
exports.股東開會通知書_onBeforeExecuteSQL = function(sql, whereStrs)
{
    for (var i = 0; i < whereStrs.length; i++) {
     whereStrs[i] = whereStrs[i].replace(/股東戶號/g, "CONVERT(INT,股東戶號)");  //將股東戶號改用INT的模式來查詢
    }
    return sql;
};