数据统计方面的问题要比报表样式的问题多得多,也严重得多,要分几个方面来研讨。
中国报表统计方面第一个重要特征是多数据源。
所谓多数据源是指同一张报表的数据会来自多个不同的数据表或视图,甚至来自多个不同的异构数据库!
1
)人员信息表
姓名
|
|
性别
|
|
年龄
|
|
政治面目
|
|
学历
|
|
职称
|
|
家庭住址
|
|
家庭成员
|
称呼
|
姓名
|
性别
|
年龄
|
单位
|
|
|
|
|
|
|
|
|
|
|
正常情况下会在数据库中设计两张数据表来保存这个表格中的数据。
2)
成本销售表
月
|
购进货物
|
销出货物
|
余额
|
烟
|
酒
|
茶
|
糖
|
烟
|
酒
|
茶
|
糖
|
期初
|
|
|
|
|
|
|
|
|
|
1
|
|
|
|
|
|
|
|
|
|
2
|
|
|
|
|
|
|
|
|
|
3
|
|
|
|
|
|
|
|
|
|
合计
|
|
|
|
|
|
|
|
|
|
一般为了业务系统处理方便,购进和销出信息在数据库中也会是两个数据表,这张报表中不仅有两组来源不同的数据,而且之间还要运算(余额)。
带七、八个数据源,关联n张表的中国式报表非常多。
对于第一张表,上下部分格式完全不同,如果用拖拽式工具,只能采用子报表的方法,也就是把下半部分造成一个子表贴进去,这就使得原本就极难对齐的格线变得更难对齐,如果再增加三五个子表,考虑到每个子表都会根据数据库中数据扩展,整张报表还不知道会变成多大;其次主子表之间除了简单的参数传递外,互相之间无法沟通,想在子表中进行运算,还得重新再算。所以,传统的子报表能不用尽量不用。
第二张表,样式不复杂,两个数据表叉乘,写个复杂点的
SQL
就行。如果一个报表中有七八个、上十个数据源呢?数据库做
n
张表的叉乘,有点高等数学基础的同志应该都能算出来要花的时间。而且复杂的
SQL
查错、维护都很麻烦,跟写代码好像也没什么差别。
当然你可以写代码,包括写存储过程准备中间表,但是如果这么做,还要报表工具干什么?