EXTJS. Grid總計+oracle小計合計

1. 直接在客戶端統計,動態的修改Grid(js 操作)。

 實現代碼


複製代碼
function GridSum(grid)
{
    
var sum = 0;
    grid.store.each(
function(record){
        sum 
+= Number(record.data.money);
    });
    
    
var n = grid.getStore().getCount();// 獲得總行數
    var p = new Ext.data.Record({
        id: 
總計:,
        money:sum
    });
    
    grid.store.insert(n, p);
// 插入到最後一行 
}

//加載數據
store.load({
    callback: 
function(r,options,success) {
        
if(!success)
            alert(
數據加載失敗!);
       GridSum(grid);
    }
});
複製代碼


代碼說明:

   a).  store爲Ext.data.Store,取數據部分代碼在這裏就省略了;grid是Ext.grid.GridPanel,同上。

    b).  注意GridSum不要寫到load方法之後,否則數據還沒加載完就動態插入一行,會看見閃一下就沒有的現象,一定要注意加載完成後再調用統計的方法。

2. SQL內容拼接實現


select s_id, s_xh, s_zb_id, s_rylx,
uf_getNamebyID(‘ryxm’,s_rydm) s_rydm, s_gz, uf_getNamebyID(‘gw’,s_gw) s_gw, s_gznr, s_gzwcqk, n_sl, n_fz, sum(N_SL*n_fz) n_zf from RZ_GZRZDJ_CB2

group by s_id, s_xh, s_zb_id, s_rylx, s_rydm, s_gz, s_gw, s_gznr, s_gzwcqk, n_sl, n_fz

select ” s_id, ” s_xh, ” s_zb_id, ” s_rylx, ” s_rydm, ” s_gz, ‘合計:’ s_gw, ” s_gznr, ” s_gzwcqk, null n_sl, null n_fz,sum(N_SL*n_fz) n_zf from RZ_GZRZDJ_CB2

3. SQL小計+合計實現,這個SQL小計的是每個job有多少數量:

select decode(grouping(job) + grouping(deptno), 1, ‘小計’, 2, ‘總計’, job) job,

   sum(sal) sal,

   sum(nvl(comm, 0)) comm,

   decode(grouping(deptno), 1, count(*) || '條', deptno) deptno

from emp

group by rollup(job, deptno);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章