java report 报表工具(1)

    主流Java报表工具的比较  

从部署、展示、设计等方面,全面比较Java报表工具,如 润乾 杰表 ,Style Report,Jasper等,以及声称支持Java的Crystal Report,数巨等。

Java报表工具,首先可以分成两大类:纯Java报表工具,和"支持"Java的报表工具.

"支持"Java的报表工具 :

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

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

  • 独立的报表服务器,直接限制了报表的性能瓶颈
  • 无法共享web服务器的集群能力
  • 无法共享web服务器的连接池管理能力
  • 无法统一部署,实施人员既要部署自己的web应用,还需要部署报表服务器
  • 独立报表服务器往往有一套自己的用户角色管理机制,与用户的应用衔接起来问题多多

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

  • 用户部署起来非常麻烦,每台机器都要安装控件。(为解决这个问题,有些厂商把原来控件所做的报表计算工作移到服务器上做,但只能在Windows下运行,因为它不是纯Java的)
  • 控件会对大报表产生性能问题,因为其报表生成与计算工作是在控件中实现的。
  • 应用系统无法灵活地通过API对报表进行控制 - 因为是在控件里。
  • 产品升级 - 将会是一大麻烦,客户端都要重新下载新的控件。

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

纯Java报表工具

纯Java的报表工具,主要的有:

  • 润乾  润乾是一个功能非常强大的Web报表产品,各方面都很出色,尤其其新一代报表模型采用了革命性的 多源分片 不规则分组 动态格间运算 行列对称 等技术,能将很多原来传统报表工具中很复杂甚至很难实现的报表轻松完成。最初润乾是集中于高端市场,但现在已经开始采用更全面的市场策略,提供全线的多个版本,为不同需求的用户提供全面的选择。润乾的问题在于目前没有什么盗版的可用。
  • Style Report  它有影响是因为在国外它是比较有名的Java报表。从部署角度,应该说它也具有JAVA报表的共性,容易部署与集成。展现角度它也支持HTML方式,同时可以导出到PDF,EXCEL等(但是它导出到EXCEL是找出那些矩形框的最细的粒度,再去用合并格搞,会弄出非常多的格,再用这个文件做后续操作很困难)。但在设计方面它只是传统的方式,面对许多复杂的报表工作量会很大,有些甚至会非常困难。
  • 开源的产品,如Jasper,以及准开源的产品(只卖设计器,服务器免费的)。这些产品的功能上要弱很多。开源的更没有支持,当然有很多讨论区,但这和可靠的厂商的商业支持是没法比的。准开源虽然支持稍好一点,但有限的收入对于其长期支撑、产品提升都是不利的,对用户则是一个长期的风险。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
report 是一个开源的访问层中间件,基于java平台,依赖于spring,以Mozilla Public License 2.0 协议发布。适用于目前大部分项目的接口测试。以及访问控制层的使用,简化控制层的繁琐代码,简化spring mvc的配置,剥离了请求控制层前的一系列操作,极大的提高项目开发速度,降低学习开发的成本。report项目请求通道采用责任链模式设计,扩展性极强,流程完全可控! ankang-report report 是一个开源的访问层框架,基于java平台,依赖于spring,以Mozilla Public License 2.0 协议发布。可用于接口的调试及性能的展示,以及访问控制层的使用,简化控制层的繁琐代码,简化spring mvc的配置,剥离的请求前的一系列操作,耦合性低,report是请求通道采用责任链模式设计,轻便可控、扩展性强。report的测试统计等功能为你的每一个接口展示一份完美的报告。 report的关键特性: a)让所有接口可视化,易于控制开发、并行开发 b)为每一个接口提供测试统计以及报表展示 c)简化spring mvc繁琐配置 d)report请求通道采用职责链的模式,扩展性强,完全可控 e)支持多种数据请求方式并可扩展,默认可选json,xml方式 report使用方式: a)maven项目加入report依赖,普通项目则导入jar包 b)引入spring文件 spring/ankang-report.xml,web.xml依赖springMVC配置 c)继承ReportStart类, @Component//通过spring注入 可设置为单例 public class BusinessReportConfig extends ReportStart { @Override protected void reginsterReport() { //注册需要被请求的控制层类 reginster(OrderHandler.class); } @Override protected void reginsterResolver() { // 注册自定义的解析器 没有自定义可忽略 reginster(OrderHandler.class); } } d)启动项目,访问localhost:8080/项目名/report/console report可配置项 a)自定义配置文件需采用指定资源地址:report/report-config.properties b)REPORT_SWITCH:true 则开启,反之关闭 默认开启 c)FILETER:自定义过滤器,多个以逗号隔开 d)JSON_BOAY:json数据请求方式key名称,默认为body e)XML_BODY:xml数据请求方式key名称,默认为root f)MONITOR_FILE_PATH:统计数据保存地址 默认为/report/report.cc g)END_INVOKE:请求通道链终端类。 系统默认 <!--如果不是采用report返回体,则必须配置以下几项,否则影响统计结果--> h)IS_DEFINED_RESPONSE:是否自定义返回体结构 i)RESPONSE_CODE:自定义返回体请求状态码字段名 j)RESPONSE_MESSAGE:自定义返回体请求消息字段名 k)RESPONSE_RESULT:自定义返回体数据对象字段名 l)ENCODE:参数编码格式 m)ERROR400_PAGE_PATH:400时返回页面地址 n)ERROR500_PAGE_PATH:500时返回页面地址 o)ERROR401_PAGE_PATH:401时返回页面地址 report注解解释 a)@Alias:标注在需要被请求的类,value属性值为请求时使用的服务名,没有标注的report将不予以处理 b)@HTTP:标注在需要被请求的方法上,value属性值为请求时的方法名,supportMethod属性值为请求类型,默认支持get和post两种,兼容RquestMapping c)@ReportParam:标注在需要注入方法的参数上,继承至ReportRequest的参数体不需要标注,HttpServletRequest不需要标注,兼容RequestParam d)@Activate:标注在自定义的过滤器上,order属性值为排序值,取值范围int,如有重复则顺延 注:自定义解析器扩展,过滤器扩展等等参照源码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值