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

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

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


用Jasper计算交叉增长率
 

   集算器代码:


用Jasper计算交叉增长率
 

   A1:取出store表的记录。

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


用Jasper计算交叉增长率
 

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

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


用Jasper计算交叉增长率
 

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


用Jasper计算交叉增长率
 

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

相关文章:

  • 2021-11-27
  • 2021-11-16
  • 2021-11-16
  • 2021-08-28
  • 2022-12-23
  • 2021-11-16
猜你喜欢
  • 2021-08-24
  • 2021-11-16
  • 2021-10-20
  • 2021-12-11
  • 2021-04-03
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案