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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值