Java报表工具,首先可以分成两大类:纯Java报表工具,和支持Java的报表工具。
支持Java的报表工具
我们所说的”支持”Java的报表工具.其实就是非Java的报表工具,但是可以在Java程序中调用.这样的产品很多,总的讲一大类是采用独立报表服务器的,如Crystal Report,Brio,Cognos,和勤等;另一大类是在前端有控件的,如数据报表等。
纯 Java报表工具
纯Java的报表工具,就是用java语言编写的报表工具,包括报表引擎、内核、设计器界面、操作等。主要的有:Style Report,润乾报表、Jasper Report,Birt,Fine Report,ireport,杰表等。
笔者只针对其中三款纯Java报表的中国式报表的处理做简单比较: 所谓中国式报表或者说复杂报表,其最根本的特征就是其格间关系的复杂度和布局扩展的灵活性,比起传统的以数据分组和聚合为基础的报表来说,中国式报表的布局和格间计算都复杂得多,所以很多传统的报表工具比如最著名的水晶报表在处理起这类复杂报表时就显得比较吃力。
Java报表工具--润乾:类似于Excel的可以支持任意行列扩展的报表处理模式。
- 优点:灵活性高。用户可以通过对每个单元格的脚本进行简单的计算和数据处理,然后通过单元格之间的关联,进行分组和汇总等工作。但和传统结构化报表设计不同的是报表表格不再有一个固定的格式,最后的结果更是通过单元格的扩展,好像搭积木似的拼接起来。此类处理办法是最完全的处理办法,国内其它厂家纷纷效仿。
- 缺点:学习和设计的难度和效率。由于这种报表设计方法本身建立在很严谨的数学模型的基础上,所以对于没有很强数学功底或者编程经验的普通人员来说,学习和掌握这种报表扩展和关联技术常常需要很长的时间。第二个难点是在报表设计完成之后,其他人来维护和理解困难也很大,这类报表写起来感觉功能十分强大,但读起来有点像天书。
Java报表工具--杰表:通过拖拽加拼接的操作结合结构化设计的报表处理模式。
- 优点: 依靠拖放式操作的的报表设计方式,以复杂报表模型,通过嵌入超级表格对象,将复杂报表的多层表头以及分组问题能瞬间解决。相对于润乾报表的学习难度和设计难度就低的多,并且操作过程简便,节约开发时间成本。
- 缺点:感觉功能限制还是比较大,尤其是对于中国式报表需要打印需求时,需要利用applet打印,需要在客户端安装十几MB 的JRE。当谈杰表提供100k左右的Jatoolsprinter控件,来改进打印,对于用户来说需要另付费。
Java报表工具—Style Report将结构化设计和行列任意扩展相结合的混合型报表处理模式。
- 优势:易用。用户对于大部分比较规则的传统表格,就可以通过拖拽直接建立报表而不需要学习复杂的脚本编程。而如果表格的复杂程度超过了一般拖拽等结构化设计所能够解决的难度,用户就可以通过与Excel相类似的任意行列扩展的方式来设计表格
- 缺点:报表表格的设计有两套机制,用户需要学习两种不同的设计方法。根据项目的具体需求和人员配置,这些优缺点哪个更重要就要自己判断了。
当然,对复杂表格的支持只是选择报表工具很多要求中的一点。如果是一次性的使用,我们可以只关注软件和当前需求的匹配,如果是准备长期使用的软件,就需要关注软件总体设计思维和它长期的发展方向。