欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

不规则月份统计报表的实现

程序员文章站 2022-05-31 21:16:19
...

  来源:http://developer.actuate.com/community/forum/index.php?/topic/36323-months-and-quarters-group-issue/

  不规则月份统计:如果起始时间是2014-01-10,则将2014-01-10到2014-02-09作为一组,将2014-02-10到2014-03-9作为一组。如果起始时间是2014-01-31,则将2014-02-27作为一组,将2014-02-28到2014-03-30作为一组。

  集算器代码:

不规则月份统计报表的实现
            
    
    博客分类: DB 不规则统计报表月份birt集算器 
 

  A1:根据起止时间查询数据库,其中startDate和endDate是外部参数。

  A2:根据起止时间算出月份间隔。比如2014-01-31和2014-07-31间隔6个月。

  B2:根据起始时间和日期间隔算出不规则月份的开始日期,并将起始时间插入第1位。“|”表示合并,“~”表示集合中的当前成员,即数字1到6,After函数可以正确计算不规则月份。结果如下:
不规则月份统计报表的实现
            
    
    博客分类: DB 不规则统计报表月份birt集算器 
 

  A3:按B2区间对A1分组,统计出不规则月份的销售额,并将B2作为最后一列。函数pseg可返回数据所在的区间号。~.sum(Amount)中的~表示分组后的当前组。#表示A1当前组号。计算结果如下:
不规则月份统计报表的实现
            
    
    博客分类: DB 不规则统计报表月份birt集算器 
 

  A4:取出A3的第2和第3列,返回给报表工具。集算器对外提供JDBC接口,报表工具会将集算器识别为普通数据库。

  下面用BIRT设计简单的list表:


不规则月份统计报表的实现
            
    
    博客分类: DB 不规则统计报表月份birt集算器 
  报表调用集算器的方法和调用存储过程一样,比如将本脚本保存为BirtUnregulMonth.dfx,则在BIRT的存储过程设计器中可以用call BirtUnregulMonth(?,?)来调用。预览后表样如下:

不规则月份统计报表的实现
            
    
    博客分类: DB 不规则统计报表月份birt集算器 
 

 

  • 不规则月份统计报表的实现
            
    
    博客分类: DB 不规则统计报表月份birt集算器 
  • 大小: 49.2 KB
  • 不规则月份统计报表的实现
            
    
    博客分类: DB 不规则统计报表月份birt集算器 
  • 大小: 13.3 KB
  • 不规则月份统计报表的实现
            
    
    博客分类: DB 不规则统计报表月份birt集算器 
  • 大小: 23.2 KB
  • 不规则月份统计报表的实现
            
    
    博客分类: DB 不规则统计报表月份birt集算器 
  • 大小: 19.3 KB
  • 不规则月份统计报表的实现
            
    
    博客分类: DB 不规则统计报表月份birt集算器 
  • 大小: 30.3 KB