`
datamachine
  • 浏览: 156836 次
社区版块
存档分类
最新评论

用Jasper计算交叉增长率

阅读更多

   来源:http://community.jaspersoft.com/questions/847490/how-get-annual-growth-rate-crosstab 。

  交叉表的每一列都是动态生成的,进行列间计算时需要动态引用,用Jasper脚本实现此类需求有一定难度,用集算器在数据准备阶段实现则相对简单,下面用例子来说明。

  数据库表store存储着多种产品在2014、2015年的销售量,需要用交叉表呈现每种产品每年的销售量,并计算出各产品的年增长率。部分源数据如下:



 

   集算器代码:



 

   A1:取出store表的记录。

  A2:追加各产品的年增长率。group按产品分组,run对每组数据依次计算,record追加记录,~(i)表示当前组中的第i条记录。A2的计算结果如下:



 

   A3:将计算结果返回给报表。集算器对外提供JDBC接口,报表工具会将集算器识别为普通数据库。 

  用Jasper设计最简单的交叉表:



 

   预览后可以看到报表结果:



 

 报表调用集算器的方法和调用存储过程一样,比如将本脚本保存为AnnulaRate.dfx,则在Jasper的SQL设计器中可以用call AnnulaRate ()来调用并传入参数。

  • 大小: 9.7 KB
  • 大小: 25.3 KB
  • 大小: 25.3 KB
  • 大小: 36.3 KB
  • 大小: 33.3 KB
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics