前言
最近想要进行报表开发,网上一搜基本上都是运用Jasperreport进行报表开发,不仅因为Jasperreport功能强大运用Java开发,还因为该项目是使用LGPL协议开源的,故可以自由运用在私有项目上只要你不修改它的源码。现在网上搜到Jasperreport的基本都是配合ireport进行开发的,而且版本基本都是6.0以前的。
进入Jasperreport项目的官网发现有一个软件叫Jaspersoft studio的,它的版本也是6.3.1跟Jar包版本一致,百度一下才知道IReport已经不再进行版本更新了,现在改用Jaspersoft studio进行开发了,该软件是基于Eclipse开发的,当然也是开源免费的。
我将自己运用Jasperreport+studio进行开发的一些经验进行整理,希望对大家有用。
准备工作
到Jasperreport开发公司官网Jaspersoft community下载Jar包,最好是下载Project包,还有模板开发软件Jaspersoft studio。下载链接
点击Libray和studio进行下载,点击之后会弹出让你注册或者登录的界面,可以点击右下角的NoThanks跳过直接来到下载界面,稍等片刻便会弹出下载对话框。
下载Jasperreposrt6.3.1的Project包后解压,里面的结构如下。
重点文件夹我都做了标识,demo是一些案例。首先来了看第一个文件夹dist,点进去之后里面放着Jasperreport6.3.1的Jar包,还有其它两个相关的包。
第一个文件夹doc里面放着Jar包的Api说明,还有Jasperreport的用户指南,如果你英文好的话可以详细读读。
接下来的文件build.xml是一个非常值得注意的点,由于JasperReport可以用ant工具进行构建,所以这个Project包里的案例都是默认用ant才能运行的,不了解ant的同学可以百度一下ant的教程。
强烈建议安装一个ant构建工具,反正也不大,因为后面会用的到,而ant都是基于build.xml进行构建项目的,所以这里有个build.xml文件。当安装好ant之后,用cmd进入当前项目,可以直接在当前目录的地址栏里输入cmd,然后直接打ant命令,就会开始构建项目了。
那这个ivy.xml又是什么呢,点开看看。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
有没感到头晕,有没看到许多的dependency,没错这个就是依赖库的构建,当你运行ant命令后,就会从远程仓库下载所有这些Jar包。
注意:这一步是非常重要的,如果你要用最新版的6.3.1进行开发,并且要用上jasperreport的所有功能,那么你可能得要有上面xml里面的所有包,而且版本一定要对应。否则当你导入JaserperReport Jar包到项目后,你会发现一调用方法填充模板生成PDF或者HTML就会出现各种ClassNotFount异常,像下面这个Jar类库
<dependency org="org.apache.xmlgraphics" name="batik-bridge" rev="1.8"/>
它是apache基金会开发的一个图像处理类,如果你用的1.7版本或者以下的版本,那么你就会一直报下面这个错误,当初为了解决这个问题,我真是踩了很多坑,最后才发现这个类只有在1.8版本才增加进去的。
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
ant安装时需要注意的是要在其安装目录下的lib文件夹导入ivy.jar这个包,需要自行下载,下载jar包传送门。如果没有这个ivy.jar,在运行ant命令后,会报下面的错误。
当运行ant命令后,如果出现下面的画面,那么恭喜你已经开始了漫长的下载jar的过程,这个时间可能很久很久。
ant构建的jar包默认放在C盘的用户文件夹下面,有个.ivy的cache文件夹,里面放的就是下载的缓存jar包了,这时可以慢慢地收集jar包了。
当初我创建一个Java web项目时,想生成图表,报一个错导一个包,导了很多包后才发现我要导的包都写在这个ivy.xml文件里。当然如果用ant构建的话有可能会遇到网络问题,下载不了有些jar包,毕竟是外国的网站,能下多少就下多少吧,没有的再去其它地方下。我的Jar包有一些是IReport软件里的lib目录拉过来的。
jaspersoft studio就这点不好,不知道要去哪里找到所有的工程需要用到的jar包。在软件安装目录里jaspersoftstudio\plugins,也可以找到一些类,但不是很全。要做一个报表所依赖的包相当的多,当然最后我也会把我可以运行的项目Demo提供出来供大家参考。