报表报表,顾名思义,有“报”也有“表”,是由“报”和“表”两部分构成的。“报”指数据的汇总统计,即将数据从数据库中取出按一定规则运算统计后排列。“表”则指格式,数据需要放在格子中,才能清楚定位,体现数据之间的层次与对应关系。“报”和“表”两方面需要完美结合,才能把完整的报表问题解决好。
目前很多国际品牌的报表工具,基本上都能把数据库的数据取出来运算排列制作出动态的变长统计报表,也就是“报”的能力不错。但“表”的功能就不是很好了,一般都要采用控件拖放的方式编辑表样,靠一个个矩形边线重合对齐画表样,一条直线要拼接多条线段,搞个多层表头累得要死,而且还和分辨率相关,好不容易在屏幕上画齐的,打印出来又不整齐。
还有一类仿制Excel的产品,合并格、设边框都很方便,可以很快地画出一个复杂格式的报表式样来,可惜,又没有数据处理接口,除了简单的格内运算外,与数据库打交道的过滤、分组等统计运算都要自己做,最要命的是不能自己完成变长报表,还要编程去动态插行插列。最终这些“报”“表”分离的报表软件,给用户带来了许多苦脑。
报表之苦
那么,中国报表的难点到底在哪里?
普遍的一种说法是中国报表样式复杂(比如有斜线),其实中国报表的难点远不止这一处,相比之下,斜线这种样式问题还是只要费工夫就能解决的小问题,而中国报表还有大量费了工夫也极难解决的大问题,总结如下:
“用”之累 “用”指应用集成能力,即报表工具能否被很好地嵌入集成到应用系统中。当前业界的高端报表工具均采用独立服务器方式,与主程序沟通要通过网络协议,严重影响性能,而且控制力度减弱;独立服务器都会有自己的用户权限管理机制,对应用而言永远都不够用,却要应用程序向这个规则靠拢,无端浪费工作量;而且独立服务器无法享用服务器的各种优势能力,如共享连接池、集群能力等。
“报”之难 “报”指统计汇总能力。中国报表最困难的地方是数据统计。中国报表具有的多数据源、整表规则分片、不完全划分、跨行组运算及独立格间运算、行列对称等诸多特征,是传统报表工具无法满足的,常常导致要求编写代码准备数据或进行子表拼接才能完成一个复杂报表的制作。
“表”之烦 “表”指展现样式能力。表样格式复杂也是中国报表比较麻烦的地方,中国报表均要求有整齐的格线,多层表头层次分明。业内有名的报表工具一般采用控件式拖拽的绘制方案,画起来非常烦琐,且还与分辨率相关,屏幕与打印不一致,而中国报表对打印样式要求向来很高。
“填”之乱 “填”指填写上报能力。中国报表几乎都有填写的需求,前端需要支持各种填写控制,如编辑风格、自动计算、合法性校验等;填写好的数据能够方便地写入数据库以进行下一步的统计汇总;还需要能支持离线填报和多级汇总填报等。而很多报表软件不支持填写能力,一般的填报解决方案都不能自动处理数据入库的问题,导致相应的编程工作量仍然很大。
报表之惑
中国报表的复杂是举世公认的,用业界常见的传统工具去完成中国报表会很困难。但这些复杂的报表是否很有必要,还是仅是庸人自扰?
一种常见的看法是:中国报表的复杂目前是现实,但主要是由于业务不规范和应用水平低下造成的,其实是没有必要的,随着业务的完善和应用水平的进步,这些报表会逐步简化以至取消。
实际情况是怎样的呢?
由于业务不规范和应用水平低下造成的没道理的复杂报表是现实存在的,某些信息化程度较低的行业确实常常是这样。但是,我们考察中国信息化程度相对较高的银行业,其报表没几个是很简单的,而且复杂很有道理,很难把这些报表搞得更简单了。看来,复杂报表具有一目了然信息量大的优势,并非没有必要,与业务规范程度及应用水平的高低并无直接关系。
造成这个现象的一个可能的原因是由于东方文化习惯造成的。中国的汉字就很复杂,常用字就有几千之多,每个字把多种笔划组成一体;而西文则都是由有限几个字母去组合而成的,老外习惯于用简单的东西去拼接组合,而我们则习惯于把相关的信息组织在一起。
事实上,我们永远都没有资格去指责需求,而应当正视这些困难并去解决它。
报表之道
中国报表的困难无法避开,而当前的一些报表工具在诸多方面不能适应中国报表的需求,新一代的报表工具在开发时,需要从以下几个方面考虑:
首先,充分考虑应用集成的要求,使报表运算引擎能够方便地嵌入到业务系统中,并享受应用体系架构的优势,集中精力处理报表运算。
其次,彻底摒弃传统工具的条带状数据处理模型,设计全新的适合于中国报表的数学模型算法,全面支持多源、分片、不完全划分、格间运算、行列对称等中国报表的统计特性。
然后,采用与Excel类似的表格展现方式,充分体现表格规律性,特别重要的是,需要与统计算法很好地结合在一起,保证表格也可自动地随数据动态变化。
最后,对于填写功能,设计单元格与数据表字段的对应机制,使之适应任何类型的填写,可自动复制对应规则,解决填写数据自动入库的难题。 (E9)