不少日子没有增加东西了,偶尔上来看看,觉着老是不写对不起优快云这点空间了,最近用了下jasperReport,把整理的一点东西贴上来吧,不都是我写的,一部分摘录了别人的经验,一部分自己的。有空会再增加一些的,如果我能记得起来的话。 :)
------------------------------------------
最近工作中用到报表,而我在学习JasperReport的过程中遇到了很多问题(主要是国内的资料太少了),网上很少找得到,在此我就把我找到的一些资料和大家共享,希望能对大家有所帮助。
Jasperreport是一个报表制作工具,用户须按照它编写的规则编写一个XML,然后得到用户所要的报表文件。 Jasperreport程序库是一个灵活,功能强大的报表产生工具,可以以PDF, HTML或XML等多种形式产生报表, 并支持CSV, XLS,等格式报表。该引擎由java编写,支持多种形式应用程序产生动态报表。
1、JasperReport和iReport的资源,最新版本可以到下面官方网站得到
iReport官方网站:
http://ireport.sourceforge.net
JasperReport官方网站:
http://jasperreports.sourceforge.net
2、安装
1)、JDK的安装,并配置JAVA_HOME
比如我的JAVA_HOME路径如下:
JAVA_HOME D:/Program Files/j2sdk1.4.2_03
2)、由于中文的问题,所以还需要下载:itext-1.02b.jar和iTextAsian.jar包
下载地址:http://itext.sourceforge.net/downloads/iTextAsian.jar
并在CLASSPATH中设置
例如我的CLASSPATH如下:
CLASSPATH
E:/Program Files/Apache Group/Tomcat4.1/webapps/testreport/WEB-INF/lib/itext-1.02b.jar;E:/Program
Files/Apache Group/Tomcat 4.1/webapps/testreport/WEB-INF/lib/iTextAsian.jar;E:/Program Files/Apache
Group/Tomcat 4.1/webapps/testreport/WEB-INF/lib;D:/tools/iReport0.2.3/lib
3)、iReport的安装iReport只要解压就OK,如果没有安装Ant,可以直接在iReport下的noAnt目录下,
运行startup.bat就可以了,这样iReport就可以启动了
4)、JasperReport
Jasperreport不需要任何配置,你只需将下载以后的jar包放到classpath下即可
5)、数据库的JDBC驱动包
加入到CLASSPATH中
3、详细资源
iReport官方提供了一些关于iReport视频,对于初学者很有帮助:
地址:http://ireport.sourceforge.net/docs.html
JasperReport官方提供的使用指南
地址:http://jasperreports.sourceforge.net/tutorial/index.html
JasperReport提供的一些例子:
地址:http://jasperreports.sourceforge.net/samples/index.html
4、常见问题
1)、iReport中提示框输入中文是不能正常显示,请将iReport下lib中的这个包删除tinylaf.jar
2)、在iReport中运行报表时如果出现乱码问题,请检查itext-1.02b.jar和iTextAsian.jar这两个包是否加到CLASSPATH
3)、在jsp或servlet高度报表时出现乱码或不显示,请检查你在报表设计过程中所设置的字体及其编码
比如:pdfname、pdfencoding
5、有的线不能显示的问题
可能因为他和其他的线或者控件有交叉,这样上面的那个被认为是非法的,所以无法显示。
要想在html里面显示的话,线与线之间,线与字框之间不能有任何一点重合,所以你说的交叉线,如果是两条线直接交叉画的话,就只能由一条显示,需要分三条线段画。
6、分页到出html
JRHtmlExporter htmlExporter = new JRHtmlExporter();
htmlExporter.setParameter(JRExporterParameter.JASPER_PRINT, _JasperPrint);
//PAGE_INDEX是当前页,也可以设置页码短SATRAT_PAGE_INDEX,END_PAGE_INDEX
htmlExporter.setParameter(JRExporterParameter.PAGE_INDEX, new Integer(1));
htmlExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "report/domainReport.htm");
htmlExporter.exportReport();
7、解决里面的中文问题
在pdf里面不能显示中文
解决方案:
1。将itextasian.jar下载下来(google一搜就有)放到 ireport目录底下的lib文件夹下即可。有人还说要再 放一个itext.jar到
lib目录下,但是在我的应用过程中发现不放此文件也可以。
2。将每个文本域属性当中的PDF font name改为STSong-Light并且将PDF encoding里面的设置改为UniGB- UCS2-H (Chinese Simplified),此时应该差不多了。
8、解决IE里面的斜线问题
用ireport画的斜线无法在IE里面显示(因为html本身无法支持斜线)
解决方案:将需要显示斜线的地方做成图片,然后利用image控件加载图片即可
9、解决IE里面无法显示的问题
在ireport里面画出的图表无法在ie里面显示
解决方案:在Ireport里面画图的时候不要用直线工具,里面的线全部用static text文本框的border画出。也就是说,里面的图表全部都是用文本框堆积成的。切记:图表里面的所有元素都不能交叉,如果有一点交叉或重叠,在IE里面都是显示不全的。