国产web报表工具的3g时代


自用友华表诞生以来,国产web报表工具的发展历史也不过七八年,然而,这几年,随着互联网应用的持续增长,国内web报表软件可谓层出不穷,或昙花一现,或隐隐待发,或修成正果。循着国产报表软件的发展轨迹,我们不难发现,国产web报表工具大致经历了以下三个阶段,或称三代,分别是band类报表工具、类excel报表工具、dom驱动报表工具

第一代,band类报表工具
band类报表工具即是采用条带方式布局报表对象,其报表生成原理,类似于传统的手工织布工艺,采用从上到下,一行紧接一行形成报表页面。水晶报表(crystal)可以说是这类报表的始祖,国产的报表工具明宇,数巨也属于这类。

Band类报表工具的优点是执行效率高,但对复杂报表需求,特别是对多数据源,复杂布局的显得力不从心。如对表头不对称的交叉报表,需要事先编写代码,准备一个庞大单一的数据集来解决,这样做费时费力。

Band类报表工具对复杂报表支持不足,原因是,第一,band类报表工具思想源于国外,国外的报表需求相对国内,要单纯得多。第二,Band类报表工具模型思想,只考虑上下扩展,没有考虑左右扩展的问题,而左右扩展是国内报表用户的经常性需求。

第二代,类excel报表工具
类excel报表工具,即是以excel单元格思想为基础的报表工具软件。Excel单元格思想对国产报表工具来说,影响是深远的,产品种类也是最丰富的,如用友华表,e表,inforeport,finereport,润乾等。

类Excel报表工具有面向打印面向展现之分,面向打印报表工具,主要解决的是如何填入数据,如何精确打印到票据的问题,用友华表即是其中的代表,(用友华表从一个票据打印工具演化而来,不难证明这一点)。面向打印工具的特点,可以很好地解决在线数据录入问题,套打问题,适合行列数固定的报表展现。不足之处是采用activex这种过时的技术,已经不适合web时代的潮流,另外,对复杂报表展现支持是不够的。

面向展现的报表工具,扩展了excel单元格模型,能比较好的解决复杂报表需求,这类报表工具的特点是:
1. 报表数据集是离散的,无关的;
2. 数据引用采用excel类似的单元格, 如 A5:B6;
3. 单元格可以向下,向右扩展;

国产的web报表工具,finreport、润乾是该类报表的代表,该类报表工具单元格能够双向扩展思想,很好地切合了复杂报表需求的特点,为报表工具如何应对复杂报表提供了很好的思路。尽管如此,经过几年的实践应用,这类报表工具暴露出的问题也不少,归纳起来是以下两点:性能差,学习困难
1.性能差
性能不佳是这类报表工具无法克服的问题,为什么?原因可以从两个层次上来说:布局层次,数据层次
布局层次:类excel报表工具试图降低布局颗粒度,放弃行,列对象,直接以单元格作为布局单位,来提高布局的灵活性,结果是布局能力确实提高了,但性能下来了。我不想进一步说明这个问题,只举一个简单的例子,我们玩麻将,习惯是把麻将牌一排一排往上码呢?还是一张一张牌地往上码?答案自然是一排一排往上码,为什么?这样效率最高。而类excel报表,采用的是一张一张往上码的办法。
数据层次:类excel报表工具没有采用独立的数据模型,数据引用以布局信息A3,B4这种方式进行,所以数据访问依赖布局,而复杂的布局模型,增加了数据访问的复杂性,这种复杂性增加了报表引擎的负担,降底了报表执行效率。

2. 学习困难
具体表现在:
模型抽象难以可视化:类excel报表工具采用离散结构定义各个报表数据,不能可视化地描述数据之间相互关系,对报表设计人员来说,报表工具中的数据变得不可捉摸。
数据访问困难:类excel报表工具将数据与布局纠集在一起,常常借助 A4、B6单元格位置(布局信息)来访问数据,而单元格在报表运行时经常被扩展,这时不得不借助一些轴、格集、层次座标等抽象概念来弥补访问能力的不足。
脚本语言难以理解:模型的复杂性体现在脚本定义上,表现为不可理解,难以掌握,如ds1.sum(a+b+c,time=max(time,left(time,7)='2007-01'))-ds1.sum(a+b+c,time='2007-01-01'),公式中,既有sql语法,又有java语法,可能还有单元格位置信息,这样脚本语言令人望而生畏。

第三代,dom驱动报表工具
dom驱动报表工具,即是以dom数据模型为基础,结合css布局样式技术实现的报表工具平台,该类报表工具的特点是:
1.使用dom模型作为的报表数据模型;
2.采用xpath引用数据;
3.采用 css样式定义布局规则;

杰表2008是该类报表工具的代表,该类报表工具的优势是:
针对复杂报表需求:经过多年的技术积累,和对国内报表用户复杂报表需求特点的长期研究,杰表.2008引入改进的dom数据模型,从根本上解决了复杂数据源,复杂布局的问题。
性能更优:采用独立的报表数据模型,符合mvc技术架构,降底了报表引擎的复杂度,提高了数据的可重用性。布局颗粒度可按行,按列,按单元格进行,既增加了灵活性,也提高了效率。
容易使用:杰表采用dom树方式表示报表数据,使数据可视化更接近问题域,从而使报表数据的设置、引用、导航更加亲切自然,从根本上减低了学习难度。

将dom模型引入到报表工具中,不是杰表的独创,但dom结合样式布局技术,却是杰表的独创。Dom模型,有无可比拟的数据整合能力,这是共识,以stylus stadio,winward为代表的报表工具,正是利用这一点,来增强报表工具对数据的适应能力。

对国产报表工具而言,仅仅引入dom模型是不够的,因为对于国内复杂报表需求而言,这只解决了数据层次的问题,没有解决复杂布局的问题。杰表.2008在引入dom报表模型的同时,在布局技术方面也做了有益的尝试,为国内报表厂商提供了新的报表工具实现思路。

第三代报表工具,Dom驱动报表工具,能不能成为国内报表工具的主流?我们认为,可以也必然是,原因是:第一,数据的泛xml 化是大势所趋,第二,类excel报表工具在向bi升级时,存在模型障碍。



下一篇 多动鼠标少动脑,java报表工具的简约之美