Java 报表

Java报表软件应用在java应用项目中,能嵌入式的将java报表工具部署到java应用中,能共享 应用服务 器连接池,利用应用服务负责均衡和集群特性。因此java报表软件成为java应用项目中首选。
 
 
Java 报表工具 ,首先可以分成两大类:纯Java 报表工具 ,和支持Java的 报表工具


1.   "支持"Java的报表工具: 
”支持”Java的报表工具.其实就是非Java的报表工具,但是可以在Java程序中调用. 这样的产品很多,总的讲一大类是采用独立 报表服务器 的,如Bo/Crystal Report,Cognos等;另一大类是在前端有控件的,如数巨报表等。

独立报表服务器的问题在于: 

    独立的报表服务器,直接限制了报表的性能瓶颈 

    无法共享web服务器的集群能力 

    无法共享web服务器的连接池管理能力 

    无法统一部署,实施人员既要部署自己的web应用,还需要部署报表服务器 

    独立报表服务器往往有一套自己的用户角色管理机制,与用户的应用衔接起来问题多多 

    前端控件方式的问题在于: 

    用户部署起来非常麻烦,每台机器都要安装控件。(为解决这个问题,有些厂商把原来控件所做的报表计算工作移到服务器上做,但只能在Windows下运行,因为它不是纯Java的) 

    控件会对大报表产生性能问题,因为其报表生成与计算工作是在控件中实现的。 

    应用系统无法灵活地通过API对报表进行控制 - 因为是在控件里。 

    产品升级 - 将会是一大麻烦,客户端都要重新下载新的控件。 

    这一比较,并不是说其他方式不可以用,但显然对Java环境下的报表应用,纯Java的报表产品应该有先天的优势。事实上这一点是不需要讨论的,以前之所以还会有独立服务器的产品勉强在用,还会出现一批基于控件的产品,其原因是在于当时基于纯Java的报表产品还没怎么出现。如果有合适的Java平台下的产品(前提是要好用),当然是用纯Java的产品了。 
 

2.   纯Java报表工具 :
纯Java的报表工具,就是用java语言编写的报表工具,包括报表引擎、内核、设计器界面、操作等。主要的有:Style Report,Jasper Report,FineReport,  润乾 等。

在国内润乾是一个功能非常强大的Web报表产品,各方面都很出色,尤其其新一代报表模型采用了革命性的多源分片、不规则分组、动态格间运算、行列对称等技术,能将很多原来传统报表工具中很复杂甚至很难实现的报表轻松完成。最初润乾是集中于高端市场,但现在已经开始采用更全面的市场策略,提供全线的多个版本,为不同需求的用户提供全面的选择。润乾的问题在于目前没有什么盗版的可用。Style Report 它有影响是因为在国外它是比较有名的Java报表。从部署角度,应该说它也具有JAVA报表的共性,容易部署与集成。展现角度它也支持HTML方式,同时可以导出到PDF,EXCEL等(但是它导出到EXCEL是找出那些矩形框的最细的粒度,再去用合并格搞,会弄出非常多的格,再用这个文件做后续操作很困难)。但在设计方面它只是传统的方式,面对许多复杂的报表工作量会很大,有些甚至会非常困难。开源的产品,如Jasper,以及准开源的产品(只卖设计器,服务器免费的)。这些产品的功能上要弱很多。开源的更没有支持,当然有很多讨论区,但这和可靠的厂商的商业支持是没法比的。准开源虽然支持稍好一点,但有限的收入对于其长期支撑、产品提升都是不利的,对用户则是一个长期的风险。 




下面列举三种java报表软件:

  帆软(FineReport):FineReport报表是一款集数据展示(报表)和数据录入(表单)功能于一身,针对软件开发商和系统集成商,用于快速构建企业信息系统的纯java报表软件。厂商为南京帆软软件有限公司。

  润乾(RAQ): 润乾报表系统是领先的企业级报表分析软件。它提供了高效的报表设计方案、强大的报表展现能力、灵活的部署机制,并且具备强有力的填报功能,厂商为北京润乾信息系统技术有限公司。

  jasperreport:jasperreport是一个能够创建复杂报表的开源项目,报表设计为IReport。本身是分布式的且由符合GNU通用公共许可的百分之百纯java报表软件。厂商为JasperSoft公司。

  下面从几个方面来考察这三个java报表软件

  主流java报表软件之多数据源比较:

  由于中国式复杂报表经常需要将不同数据库表中数据展现在一张报表中,传统工具处理方式只能用子报表或者拼SQL语句来解决问题,这种方案不断工作量大,而且有些报表根本做不出来。所以是否支持多数据源是考察java报表软件一个非常重要标准。

  jasperreport:由于采用传统条状模型,只支持单数据源,需要从多个数据表中取数据情况只能使用子报表,负责SQL语句或者程序来实现。

  帆软报表(FineReport):支持从一个数据库中不同数据库表或者不同数据库中不同数据库表的数据取出来展现在一张报表上。

  润乾报表:支持从一个数据库中不同数据库表中取数展现在一张报表软件上。

  主流java报表软件之填报比较:

  一个完整信息系统中有两个非常重要的两块:数据展现和数据录入。以往两个模块是独立两个产品,现在越来越需要一个报表软件能融合这两个功能。

  Jasperreport:此款java报表软件支持数据展现,不知道有什么方法可以将数据库回填到数据库中。

  帆软报表(FineReport):同一个模板通过不同参数可控制是用于展现还是填报,支持零客户端录入,支持数据校验,支持多源填报,支持多源填报表数据的删除行和添加行支持bs端自动计算,支持多sheet填报。

  润乾报表:同一个模板只能由于展现或者填报,支持零客户端录入,支持数据校验,支持多源填报,不支持多源填报表数据的删除行和添加行,bs端自动计算速度慢,不支持多sheet填报,需要用填报组来间接实现。

  主流java报表软件之设计器实现比较:

  互联网上文章对java报表设计器分析更多是从设计器布局分析,把设计器分为:基于控件拖放的设计模式和基于类似Excel电子表格的设计模式。

  本文从java报表软件设计器实现角度来看。

  jasperreport:jasperreport的设计器叫IReport,从2.0版本以后,设计器基于netbeans开发,设计器五十M,以拖拽控件到画布上为主。

  帆软报表(FineReport):用java中Swing来实现,设计器大约在70M左右,支持三层结构的设计模式,不仅形似而且神似excel。应该是中国市场上制表效率最高的报表软件,容易对报表设计器进行二次开发。

  润乾报表: 用java中Swing来实现,设计器大约在一百M,形似Excel,报表制作以书写表单式为主,在不能熟悉表达式写法情况下,制表效率难有图片。基本难对设计器进行二次改造。

  主流java报表软件之图表比较:

  在常见数据统计分析过程中,往往需要图表结合。所以图表在java报表软件中也非常重要。

  jasperreport:jasperreport使用jfreechart作为其图表引擎,支持图表上钻取。支持统计图表题,支持Pie,Pie 3D,Bar,Bar 3D,XY Bar,Stacked Bar,Stacked Bar 3D,Line,XY Line,Area,XY Area,Scatter Plot,Bubble,Time Series,High Low Open Close和Candlestick 多种类型图表。

  帆软报表(FineReport):自主开发图表引擎的java报表软件,支持图表上钻取。支持动态和静态统计图表题,图表背景可以使用颜色和图片,绘图区背景颜色可以交替绘制,可以调整折线图折点调剂性状和大小。支持仪表盘、雷达图、双轴柱线图、饼图、柱图、线图等图。

  润乾报表:自主开发图表引擎java报表软件,支持图表上钻取。支持静态统计图表题,图表背景可以使用颜色,绘图区背景颜色只能设置颜色,可以调整折线图折点有圆形和方形两种,不能调整大小。支持仪表盘、雷达图、双轴柱线图、饼图、柱图、线图等图。

  主流java报表软件之设计调整比较:

  任何报表用写程序肯定是能解决的,报表工具就是为了加快报表开发速度,所以报表设计器设计效率非常关键。下面就分开介绍一下三款java报表工具在设计模式上的区别。

  jasperreport:可视化制表模式,制表界面为条带填入式,生成的模板文件为XML文件;不支持EXCEL模板导入;格式对齐非常困难;对字体等其他格式的调整也非常麻烦;表格中的表达式不能随着行列变化而实现自动调整;最终导出excel。

  帆软报表(FineReport):类excel的表格式设计模式;支持EXCEL的无缝导入导出;插入、删除行列后,单元格的表达式、数据集绑定关系自动变化,不需要手工修改;支持导入多sheet的excel文件为一个报表模板;报表编辑区域默认无限行和无限列;支持SUM(A1:A2)这样的拖动复制。

  润乾报表:类excel的表格式设计模式,行列对齐非常容易;支持excel导入导出;插入、删除行列后,单元格的表达式、数据集绑定关系自动变化,不需要手工修改;多sheet的excel只能导成多个模板。不支持SUM(A1:A2)这样的拖动复制,需要重新写公式。

  主流java报表软件之批量打印比较:

  虽然java报表可以在电脑显示屏上展示,但许多时候更需要纸张的直观展示分析,这就考验了java报表软件的打印功能,java报表离不开打印,打印就少不了要批量。

  Jasperreport:有批量报表打印功能,但一般需要通过专门的编程实现批量打印;一些较简单的分片式打印能通过主子表实现;不能自动适应纸张大小;不支持分栏打印;不支持一纸多页打印;不支持末页补足空行;不支持缩放;支持纵向分页,不支持横向分页。

  帆软报表(FineReport):本身支持任何语言的批量打印调用 ,可以给每个报表提供每个报表可以传递不同的参数;客户端能记忆打印设置;能自动适应纸张大小,自动适应打印机的打印方向;支持上表头、左表头,下表尾,右表尾的每页重复;支持按组强制分页;支持固定行数强制分页,支持横/纵向分页打印; 支持分栏打印。支持Applet,PDF,Flash多种web打印方式。

  润乾报表:支持java批量打印方法,主子表、报表组和调用批量打印类包;持横/纵向分页;支持支持强制分页;支持小票据的一纸多页;支持末页补足空行;支持缩印;支持打印前修改数据等多种中国报表特有的打印需求;只有Applet一种成熟的报表打印方案。  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值