作者在 2007-06-21 23:40:00 发布以下内容
从部署、展示、设计等方面,全面比较Java报表工具,如FineReport,润乾,快逸,Style Report,Jasper等,以及声称支持Java的Crystal,数巨等。
Java报表工具,首先可以分成两大类:纯Java报表工具,和"支持"Java的报表工具.
纯Java报表工具
纯Java的报表工具,主要的有:
开源的产品,如JasperReport(http://www.jasperreport.com),以及准开源的产品(只卖设计器,服务器免费的)。这些产品的功能上要弱很多。开源的更没有支持,虽然有很多讨论区,但这和可靠的厂商的商业支持是没法比的。准开源虽然支持稍好一点,但有限的收入对于其长期支撑、产品提升都是不利的,对用户则是一个长期的风险。
FineReport (http://www.finereport.com)功能完善的web报表产品,支持中国式报表设计:多源分片,扩展后数据的格间运算,行列对称等等。并且对于报表设计人员来说,FineReport有一个优势就是可以仅通过鼠标操作就设计出复杂的报表,这增强了工具的易学和易用性。没有加密狗。
润乾 (http://www.runqian.com)润钱是一个功能非常强大的Web报表产品,支持中国式报表。但是由于其报表设计方式完全依赖手写表达式,对于没有技术基础的用户来说,学习难度比较大。其最初是定位于高端用户,06年在普及版的基础上推出了快逸报表,去掉了最核心的多数据源线性报表功能,保留的功能只相当开源的jasperreport的所具备的功能,主打低端路线。虽然快意同样也是一个纯JAVA产品,但是由于其限制非线性报表功能,不能设计中国式复杂报表,所以在面对复杂报表的时候,就无能为力了,个人觉得市场宣传的噱头远远大于实际功能的作用。二者都有加密狗。
"支持"Java的报表工具:
我 们所说的"支持"Java的报表工具.其实就是非Java的报表工具,但是可以在Java程序中调用.这样的产品很多,总的讲一大类是采用独立报表服务器 的,如Bo/Crystal Report(http://www.businessobjects.com),Brio(http://www.brio.com),Cognos(http://www.cognos.com)等;另一大类是在前端有控件的,如数巨报表(http://www.maxrpt.com)等。
独立报表服务器的问题在于:
独立的报表服务器,直接限制了报表的性能瓶颈
无法共享web服务器的集群能力
无法共享web服务器的连接池管理能力
无法统一部署,实施人员既要部署自己的web应用,还需要部署报表服务器
独立报表服务器往往有一套自己的用户角色管理机制,与用户的应用衔接起来问题多多
前端控件方式的问题在于:
用户部署起来非常麻烦,每台机器都要安装控件。(为解决这个问题,有些厂商把原来控件所做的报表计算工作移到服务器上做,但这只能在Windows下运行,因为它并不是纯Java的)
控件会对大报表产生性能问题,因为其报表生成与计算工作是在控件中实现的。
应用系统无法灵活地通过API对报表进行控制。
产品升级 -客户端都要重新下载新的控件,增加工作量,比较麻烦。
这 一比较,并不是说其他方式就不可取,但显然在Java环境下的报表应用,纯Java的报表产品有先天的优势。
Java报表工具,首先可以分成两大类:纯Java报表工具,和"支持"Java的报表工具.
纯Java报表工具
纯Java的报表工具,主要的有:
开源的产品,如JasperReport(http://www.jasperreport.com),以及准开源的产品(只卖设计器,服务器免费的)。这些产品的功能上要弱很多。开源的更没有支持,虽然有很多讨论区,但这和可靠的厂商的商业支持是没法比的。准开源虽然支持稍好一点,但有限的收入对于其长期支撑、产品提升都是不利的,对用户则是一个长期的风险。
FineReport (http://www.finereport.com)功能完善的web报表产品,支持中国式报表设计:多源分片,扩展后数据的格间运算,行列对称等等。并且对于报表设计人员来说,FineReport有一个优势就是可以仅通过鼠标操作就设计出复杂的报表,这增强了工具的易学和易用性。没有加密狗。
润乾 (http://www.runqian.com)润钱是一个功能非常强大的Web报表产品,支持中国式报表。但是由于其报表设计方式完全依赖手写表达式,对于没有技术基础的用户来说,学习难度比较大。其最初是定位于高端用户,06年在普及版的基础上推出了快逸报表,去掉了最核心的多数据源线性报表功能,保留的功能只相当开源的jasperreport的所具备的功能,主打低端路线。虽然快意同样也是一个纯JAVA产品,但是由于其限制非线性报表功能,不能设计中国式复杂报表,所以在面对复杂报表的时候,就无能为力了,个人觉得市场宣传的噱头远远大于实际功能的作用。二者都有加密狗。
"支持"Java的报表工具:
我 们所说的"支持"Java的报表工具.其实就是非Java的报表工具,但是可以在Java程序中调用.这样的产品很多,总的讲一大类是采用独立报表服务器 的,如Bo/Crystal Report(http://www.businessobjects.com),Brio(http://www.brio.com),Cognos(http://www.cognos.com)等;另一大类是在前端有控件的,如数巨报表(http://www.maxrpt.com)等。
独立报表服务器的问题在于:
独立的报表服务器,直接限制了报表的性能瓶颈
无法共享web服务器的集群能力
无法共享web服务器的连接池管理能力
无法统一部署,实施人员既要部署自己的web应用,还需要部署报表服务器
独立报表服务器往往有一套自己的用户角色管理机制,与用户的应用衔接起来问题多多
前端控件方式的问题在于:
用户部署起来非常麻烦,每台机器都要安装控件。(为解决这个问题,有些厂商把原来控件所做的报表计算工作移到服务器上做,但这只能在Windows下运行,因为它并不是纯Java的)
控件会对大报表产生性能问题,因为其报表生成与计算工作是在控件中实现的。
应用系统无法灵活地通过API对报表进行控制。
产品升级 -客户端都要重新下载新的控件,增加工作量,比较麻烦。
这 一比较,并不是说其他方式就不可取,但显然在Java环境下的报表应用,纯Java的报表产品有先天的优势。