Chart元件如何以StoreProcedure傳參數的方式產生圖表?
有兩個方法。
第一個方法:
前端透過CallServerMethod方式去後端Call SP,然後再回傳資料給前端,
前端再將後端傳回的結果轉成json,
最後透過loadData的方式將資料呈現在Chart上面,  
舉例如下:  
 
前端JS:  
function callSP()   
{     
    $.prompt( "輸入日期(格式:YYYY-MM-DD)?", new Date().Format("yyyy-MM-dd"), function(yymmdd) {   
        $.callMethod('出貨單','callSP',{date:yymmdd},function(result){   
            var param = $.parseJSON(result); //傳回result為JSON格式  
            if (param.length != 0){  
                $('#LineChart1').linechart('loadData', param);  
                //$('#PieChart1').piechart('loadData', param);  
                //$('#BarChart1').barchart('loadData', param);  
            }  
        });  
    });  
}  
 
後端JS:  
 
exports.callSP = function(param,callback)   
{  
    var date = param.date; // 取出編號  
    var clientInfo = this.clientInfo;  
    var sql = "exec 出貨單SP '"+date+"'";  
    var dm = this;  
    dm.queryRaw(clientInfo, clientInfo.database, sql, {}, callback);  
};  
第二個方法:  
 
先將DataGrid的RemoteName來源infocommand改為使用SP  
並且也讓Chart的RemoteName來源也設定為該infocommand  
 
DataGrid使用SP的方法參考如下:  
* InfoCommand的CommandType如果為StoredProcedure時,前端的DataGrid查詢條件送回後端時會自動與StoredProcedure配合。如果在InfoCommand的Parameters中所設定的參數與前端DataGrid欄位名稱一致時,前端送過來的查詢條件會自動寫入Parameters的Value中,這樣就可以透過StoredProcedure的Input變數進行資料查詢與回傳結果。如下:  
1.  設計一個SP,透過MSSQL或是EEPCloud來新增一個SP,並定義好input參數。  
2.  原來前端的DataGrid需事先連上一個虛擬或實體的Table,結構與SP要傳會的資料一致。在Server端除了原來的InfoCommand對應到這個虛擬或實體的Table外,還要另外貼一個SP的InfoCommand(CommandType為StoredProcedure),CommandText輸入SP的名稱,並填好與SP對應的Parameters參數。  
3.  前端的DataGrid.RemoteName改成這個SP的InfoCommand即可,這樣User輸入查詢條件就會送往SP這個InfoCommand,InfoCommand因為為SP的Type,所以會自動用欄位對應Parameters參數。