??根据存取金额计算初期余额时需要进行跨行计算,用Jasper表达式可以实现,但步骤复杂有一定难度,用集算器协助Jasper则可以轻松实现,下面用简化的例子来说明。
??data.csv存储着某账户各期资金存取情况,需要根据该文件计算出初期余额,部分源数据如下:
?
? 集算器代码:
?
? A1:以逗号为分隔符读入文件。
??A2:计算初期余额并将计算结果返回给报表。账户初值为43,括号运算将返回最后一个逗号的计算结果,如下:
?
? 集算器对外提供JDBC接口,报表工具会将集算器识别为普通数据库。
??下面用Jasper设计最简单的list表,模板如下:
?
? 预览后可以看到报表结果:
?
? 报表调用集算器的方法和调用存储过程一样,比如将本脚本保存为balance.dfx,则在Jasper的SQL设计器中可以用call balance()来调用并传入参数。
原文:http://datamachine.iteye.com/blog/2256546