报表开发之pentaho,cr,fineReport,jasper

  1. 简述

公司由于业务需要,需要进行报表开发。表格内容并不是特别复杂,大致都是table类型加单参数(多参数)条件查询。

(a).最开始采用pentaho的report_designer和bi_server组合

report_designer用作报表设计,bi_server用作报表发布,后面发现数据基本能够展示出来,但是报表的导出和打印功能不是特别好,可能是自己研究不够深入,

(b).后面老大让转CR(水晶报表),然后找了一个基本的web项目demo,对之前需要做的报表进行整合。水晶报表的做法跟pentaho类似,也是设计器,然后跟web项目整合之后部署在tomcat中。然后再vue项目中通过window.open(url)访问

(c).接下来就是fineReport,帆软刚开始是拒绝的,因为要收钱,但是最后当使用免费试用版的时候,发现,果然是收费的,这个对比之前两个,是最好用的。条件查询,类似excel的界面报表设计,多数据源的支持,已经网上的各种参考资料,都是前两者无法比的。这样说吧,同样再sql写好的前提下,前面两个设计一个报表可能需要一到两个小时,现在这个需要五分钟左右。

(d).ireport+jasper

  这个其实没怎么用过,准备用着试试看一下

(e).当时做其实还有另外一种方式,将报表画出来。这个跟报表设计软件无关,就不做说明了。

2.各种报表设计方案记录

         (1).fineReport(基于8.0版本)

         先从帆软说起,因为也是刚做,记忆深刻点。先上需求:有这样几个报表,有的是单参数查询,有的是多参数查询。有一个共通需求是导出为excel和pdf等。fineReport在这方面的支持很好。因为是vue前端项目需要有用到报表,vue项目页面点击报表按钮时,需要请求到报表,这个报表必须要有一个报表服务,于是有了如下流程

  1. 新建一个报表服务项目(就是简单的web服务),

建立好后的web项目的目录结构如下

  1. 导入帆软必要的jar包。

具体有哪些jar包,如下截图

  1. 修改web.xml文件,增加配置

  1. 利用报表设计器进行报表设计,这个涉及的内容太宽广,具体参考fineReport官方文档,贴出链接: http://help.finereport.com/
  2. vue项目中怎么访问呢?

按钮点击事件中直接利用window.open(url)访问部署在tomcat中的报表文件

http:192.168.3.242:8080/cristal/ReportServer?reportlet=WMSInStorageWorkBook.cpt&__bypagesize__=false&id="+trqiId

                   其中,http:192.168.3.242:8080是报表服务ip和端口,cristal是开放的应用名称,

ReportServer是固定写法,reportlet=WMSInStorageWorkBook.cpt中WMSInStorageWorkBook是利用报表设计器生成的报表文件。__bypagesize__=false如果不写,当数据列很多的时候,不会显示所有的数据列。后面的id自然就是传递的参数了。

小结:基本流程就是新建web项目,导入jar,新建存放datasource.xmlcpt文件的文件夹,然后导入一些必要的相关jar包。修改web.xml文件,最后项目访问部署好的报表服务的报表文件。

 

(2).水晶报表

         水晶报表这边实际上做了很多工作,多参数,单参数,包括后台servlet利用doPost()读取前端请求数据,然后拼装sql等等。不过有一个瓶颈始终没有克服,就是多表联合查询展示数据的问题。当报表中包含多个表的数据,基于网上找的那个demo就歇菜了。始终无法绕过这个瓶颈。网上一直找不到。自己这边采用的一种解决方式为:根据报表需要展示的数据建一张表,每次用户查看报表的时候,先清空一次表,然后servlet通过原生sql查询将数据查询出来,然后插入到表中,然后在通过一个单表的sql查询之前插入的数据,把数据展示出来。这种方式当然是不好的。所以后来才会采用水晶报表。

(3). pentaho

      pentaho是免费开源的bi软件。我觉得比水晶报表好用,但是比较笨重,另外一个,对导出和打印的支持不好(可能我不知道怎么设置,就是没有导出和打印功能,只有一个数据展示功能)。这个是由两个组件结合使用的,一个是report_designer,一个是bi_server,前者是报表设计器,主要是负责报表设计,通过拖拉拽做好报表。bi_server主要是发布做好的报表。

(4).iReport+jasper

  这个没怎么用过,听说是对java支持比较好。有时间做一个demo之后再来写感受

下载地址由于csdn上传限制,上传百度网盘。链接:https://pan.baidu.com/s/1GO5GCVshR6USyQ-g0bGTVg 密码:p2j1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值