JAVA报表

报表工具

为什么说中国式报表特殊-5.3 跨行组运算

中国报表统计方面的第三个复杂点是格间运算,特别是跨行组的运算。

要统计就要有运算,所有的报表开发工具都提供了计算汇总的功能。运算只有两种,一种是行内各列之间的运算,另一种是针对某组(或全体)所有数据进行的汇总(可能带条件),两种运算可以组合。

但是,在中国的报表中只有要时间序列的,多半就要涉及到比上期、比去年同期之类的运算,这种运算跨行甚至跨组了。而这种能力,咱们手上这些报表开发工具就又没有了。其原因在于:这类工具都和数据库的概念匹配得很好,而数据库的行是没有次序的,不知道谁是谁的上一行,比上期就没法定义了,比去年同期这种跨组运算更是想不明白了。为了解决这些问题,有些工具添加了一些引用上行或累积值的特殊函数,但跨组运算依然没法处理,只有再写代码了。

这种比较有规律的需求还不算太难办,编程序准备数据或是写个复杂点的SQL语句都能处理。但中国表中常常还会有些独立的格子,其运算方法和谁都不相干,或是从表格中东南西北挑几个格子加减乘除一番,或者干脆又要到数据库中再做SELECT运算,与其它格子之间无规律可循。这可不是在后台写点程序准备好数据就完了的,需要生成完表格后,再编程序计算出这些数填进去,这种搞法一般就得采用报表的脚本或者宿主开发语言来写代码了。

这三个较大的数据统计问题已经把大伙折磨得差不多吧,其它相关的还有一些次要问题,比如参数和宏的引入、交叉表的表头向右对齐问题等等,就不细说了。

posted on 2006-12-15 09:47 java-report 阅读(1160) 评论(0)  编辑  收藏