分页汇总写到下一页

【问题】

I need to display the previous page sum value(Amount of item sold) in the current page. If it is the first page then no need to display. From the second page onwards it should display the total sum value of the previous page at the top.

Ex : Page : 1

1.2 Product_Name Amount

Product1 100

Product2 200

Page : 2

1.3 Product_Name Amount

Pre.page_sum 300

Product3 400

Any suggestion will be helpful

【回答】

Jasper 在打印时无法取得上一页的汇总。可以在数据准备阶段把上页汇总值插入到源数据中,Jasper 就只要简单分页即可。计算每组汇总值后再与源数据按次序合并起来。用 SPL 实现这个过程比较简单:

A​
1 =$select Product,Amount from tb
2 A1.group((#-2)\(page_Row-1))
3 =A2.new(“Pre.page_sum”:Product,~.sum(Amount):Amount)
4 =A2.conj(~|A3(#))

A1:查询数据

A2:将 A1 分组,每 page_Row-1 个数据一组,page_Row 是参数。

A3:对分组后的数据进行汇总,并生成新序表

A4:将分组和汇总合并到一起,提供给 jasper 分页。

Jasper 可以通过 JDBC 连接集算器,调用脚本方法和调用存储过程一样,详情参考【JasperReport 调用 SPL 脚本】。