通过这几天的JasperReport学习。简单的了解了制作一个JasperReport的过程。
对JasperReport这个工具的介绍网上也不少的。都很相似的。这里不介绍了。(我自己也不是很清楚)。
这里发现了制作JasperReport一般有两种方式:
一、通过JavaBean的方式把数据直接弄成JRDataSource
二、通过获得数据库连接的方式,然后传入sql语句进行取数据
各有优势吧。以下是我对JavaBean方式的心得。
1、创建JasperReport模板(即jrxml文件)
2、建立数据源(即在模板中所需要的数据,存放于List集合中,再生成JRDataSource)
3、设置页面类型(编码方式,文件名称,文件类型)
4、将jrxml文件编译成jasper文件
5、载入jasper文件,获得 JasperReport对象
6、根据JasperReport, JRDataSource以及Report中所需要的参数(先存入Map) 获得JasperPrint对象
注:在获得jasperPrint的时候也可以根据一个Connection类,也是上面所说的通过数据库连接的方式,然后把sql语句放到到map里。(这里的sql语句对应的key要与jrxml里要对应)
7、创建JRExporter对象,并根据不同的JRExporter对象设置不同的属性。
8、导出。
以下是自己对JasperReport代码的整理
用到的JAR包:
commons-beanutils-1.8.3.jar
commons-collections-3.2.1.jar
commons-digester-1.7.jar
commons-logging-1.1.1.jar
itext-2.1.7.jar
iTextAsian-2.1.jar
jasperreports-3.7.4.jar
jcommon-1.0.15.jar
jfreechart-1.0.13.jar
poi-3.7.jar
记不大清楚了。。
下面有一个小问题,用到maven的朋友可能会遇到。
maven配置:
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>3.7.6</version>
</dependency>
在用maven配置项目的过程中如果用到了dom4j。
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.5.2</version>
</dependency>
在这个包下会带一个pull-parser包。
这个包用来解析xml的。但是在解析jrxml的时候会报错。
同样一个接口在动态编译的时候会找到一个不同的实现类,导致在解析xml的时候出错了。(在解析jrxml的工厂类中出现)
这里要用到maven中exclusions将pull-parser移除掉
<exclusions>
<exclusion>
<groupId>pull-parser</groupId>
<artifactId>pull-parser</artifactId>
</exclusion>
</exclusions>