分享
 
 
 

JasperReport 学习之路

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

转载自http://www.javaresearch.org/forum/thread.jsp?column=316&thread=14374

1 首先看看

http://plateau.sicool.com/main.html

上的三篇ireport和Jasperreport整合开发报表向导(一)(二)(三)

看完理解并自己运行一下,OK,你入门了

2 去找一份TheJasperReportsUltimateGuide.1.0.pdf

看完之后你就能了解JasperReport生成的基本过程及原理,里面也回答了很多

刚接触这个报表工具会产生的疑问

3 论坛上的经验

Java研究的论坛上有很多关于JasperReport及iReport的经验及问题解答,所以

大家在提问的时候不妨多翻翻论坛上的帖子,很多你要问的问题都能找到答案,

还有很多宝贵的经验

当然说起论坛最正宗还是

https://sourceforge.net/projects/ireport/

https://sourceforge.net/projects/jasperreports/

大家可以到sourceforge.net去看看,论坛上提供搜索,也能翻到很多东西,顺便

练练你的英语

4 学习JasperReport的Samples

解压jasperreports-0.5.0-project.zip 后目录jasperreports\demo\samples

下的例子,看看这些例子是你关于这个报表工具提升能力的最好最快的方式,

我会在下面贴上各个例子的简要说明。

要运行sample下的例子,首先你要安装ant,并设置好环境变量

如ANT_HOME 值为 D:\Install\ant161

然后到dos方式下,到某一个sample的目录,比如到

jasperreports\demo\samples\alterdesign目录下

运行 ant 则会编译报表文件

运行 ant view 则会展现报表

5 比上面更好的资料是什么?

就是JasperReport的源代码,看懂源代码,JasperReport

就是在你脑子里的了,你想干什么都行了,优化代码,覆写,继承他的类,实现个性

化的功能,甚至你可以参考他的思想,升华一下,做一个你自己的报表

1. alterdesign

该例子演示了报表编译后,在报表展现的时候如何动态的控制其中的元素

比如让某一个矩形变色或其他

2. antcompile

演示如何让 ant 来编译

3. chart

演示了如何在报表中添加图像,JasperReport是用Scriptlet的方式

往报表中添加图像,而Scriptlet是调用也是开源的jfreechart的Api来

生成图形,去jfreechart看一下,该工具能的图形生成能力也很强

4. datasource

演示了如何在报表中使用各种数据源,能够使用beanarray

beancollection,也可以用自定义的数据源,只要继承了JRDataSource的

两个接口,这个能给用户提供非常大的灵活性,报表的数据不用局限于一

条Sql语句,也可以使用存储过程,对生成报表中的数据也可以排序,二

次检索,等等

5. fonts

各种字体的演示

6. horizontal

演示了水平分栏的报表,演示报表中分了三栏,其中还用到了

textFieldExpression,就像if语句的效果来选择输出的内容

7. hyperlink

演示了各种样式的链接

8. images

演示了如何在报表中加入图像以及图像的显示方式

9. jasper

演示了分组分栏的报表,演示中用了2次group

10. jcharts

演示了调用另一个开源的API jcharts来往报表中加入分析图形,原理同

上chart,如果jfreechart都还不能满足你分析图形的要求,那到jcharts

里找找看吧,说不定有

11. landscape

演示横向的报表

12. nopagebreak

演示比如在IE中不分页的方式打印出报表的内容,通过这个演示也可以

了解报表输出如何配置参数

13. noreport

演示了如何直接通过java程序生成JasperPrint对象来输出

14. noxmldesign

演示了如何直接通过java程序生成JasperDesign对象来动态的生成报

表,根据这个例子,用户可以作出自定义选列的报表,当然比较麻烦,

而且肯定自己要补充他的API库

(JasperReport真是强大啊,呵呵)

15. pdfencrypt

演示了pdf的输出方式,可以给pdf文件加密码,其实就是pdf输出方式的

参数配置,具体有那些参数可配置,去看看API吧

16. printservice

演示了如何直接打印报表

17. query

演示了如何让查询的sql动态起来,比如你可以通过一个Jsp页面传

报表的sql的where条件,order条件,甚至整个sql语句

18. rotation

演示了文字纵向显示的报表

19. scriptlet

演示了如何继承JRDefaultScriptlet,并加入自己的处理语句,这个功能

可是很强大的哦,看看这些接口

beforeReportInit() afterReportInit() beforePageInit()

afterPageInit() beforeColumnInit() afterColumnInit()

beforeGroupInit(String groupName)

afterGroupInit(String groupName)

看看这些名字就知道你能完成那些功能,比如显示一列数据后,马上跟

上该列数据的分析图形,当然你也可以加上自己的方法并在报表中调用

20. shapes

演示了JasperReport中自带的图形,及能配置的参数

当然你也能继承或者覆写JasperReport中的Api生成你要的图形,

21. stretch

演示了如何处理报表中数据拉伸以及带来周围的线及框的拉伸,

你能了解到虽然黑框式表格不是JasperReport中缺省的展现方式,

但在JasperReport中不难实现

22. subreport

演示了子报表,还告诉你一个报表中可以有n个子报表,子报表中还可以

嵌套子报表

23. tableofcontents

演示了如何生成一个有目录的,复杂的报表

24. unicode

演示了各种 字符编码

25. webapp

演示了如何把报表放到一个JavaWeb项目中,可以用Jsp Servlet

applet,笔者做了一个有参数页面,可以选择html pdf applet

输出方式的报表,有兴趣的 我可以在后面放上代码

下面是一些补充的内容:

概述

Jasperreport是http://www.sourceforge.net上一个优秀的开源的报表工具,其强大的功能及免费的特性得到了广大的认可和赞誉,现在的最新版本是Jasperreport0.6.1。下载地址是

https://sourceforge.net/projects/jasperreports/。

iReport是jasperreport的一个IDE的开发工具,使Jasperreport变得更易用,其最新版本是iReport0.3.2支持到Jasperreport0.5.3,和Jasperreport一样也在不断的更新中。下载地址是https://sourceforge.net/projects/ireport/。

关于利用这两个工具开发Web报表,这里已经有几份很好的材料:

? JasperReport与iReport的配置与使用.pdf(该文档可用于一开始入门熟悉这两个工具)

? TheJasperReportsUltimateGuide.1.0.pdf (这个本是一份收费的文档,讲述了Jasperreport生成的原理方面的知识,如果你打算能熟练的使用Jasperreport这个报表工具,需要好好看这份英文资料的)

? http://www.javaresearch.org/forum/thread.jsp?column=316&thread=14374

(这是论坛上的一个入门指南)

第一次运行

第一次总是比较痛苦,使用这个报表工具也是,下面是我总结出的一些运行中比较容易出现的问题。

我的总结是建立在使用iReport0.3.2 + Jasperreport0.5.3(没办法,iReport0.4.0还没出来,0.3.2只支持到Jasperreport0.5.3)。至于这两者的组合,我用到现在还是觉得比较顺的。

从souceforge上下载iReport-0.3.2.zip 解压后,要注意一点,把你的JDK的tools.jar拷到你解压后的iReport的lib目录下,做中文的pdf报表还需要把iTextAsian.jar拷到lib下,如果你用的是Oracle的数据库,那么你还需要把class12.jar也就是Oracle的Jdbc包拷到lib下,其他数据库也一样。

好了准备工作做好了,运行iReport.bat。如果比较顺利,应该能看到以下画面,说明

iReport成功运行了。

如果dos界面一闪而过,并且没有出现以上界面,说明没有成功。按以下步骤可解决该问题:

确定系统安装有JDK,而且系统环境设置,path里有JDK的bin目录,并有java_home参数,以下是我的几个参数的配置情况可供参考:

1 java_home D:\JBuilder9\jdk1.4

2 path D:\JBuilder9\jdk1.4\bin;D:\Install\ant161\bin

3 classpath D:\iReport032\fonts;E:\Project\EssV6\webapps\WEB-INF\classes

4 ant_home D:\Install\ant161

(关于上面参数设置的说明:

? Report0.3.2及Jasperreport0.5.3都要求JDK1.4以上版本,所以要注意Oracle9装好会自动把java环境设为Oracle自带的JDK1.3.1,会导致无法运行iReport。

? ant_home及path中ant的设置是为了可以用ant来学习Jasperreport的例子,这些例子在Jasperreport解压后的demo\samples目录下,比如在Dos环境下进入demo\samples\jasper目录下,输入命令ant view 就可以看到该示例报表。

? classpath中D:\iReport032\fonts;的设置是确保iReport里字体设置的时候能选择一些外部字体,比如要让PDF显示黑体,那么把windows下的simhei.ttf拷到D:\iReport032\fonts下,在iReport中如下设置:pdffontname为外部字体、truetypefont 为simhei.ttf、 编码为unicode with horizontal writing,这样就能使用黑体了

? E:\Project\EssV6\webapps\WEB-INF\classes,classpath里的这是设置,是让报表里一些数据要经过特殊处理,可以用工程里的函数。

这些设置完成后,到dos环境下的iReport目录下,运行iReport.bat,dos环境下的好处是如果iReport运行失败可以看到失败原因,然后针对性的解决。

iReport可以运行后就是一个摸索使用,慢慢了解熟悉的过程了,直到你能做出像样的一些报表。这个过程可以参考上面提到的

http://www.javaresearch.org/forum/thread.jsp?column=316&thread=14374

常见问题的解决

具体做报表的时候会碰到许多问题,关键的是我们需要分析出错提示,根据找到解决办法,比如你把报表放到你的工程下,比如运行结果提示java.io.FileNotFoundException,那么你就需要确定你的报表编译后的文件在相应的目录;又比如提示NoClassDefFoundError,那你就要看看是哪个包没有放到你的工程下。以下是一些常见问题:

? Jasper报表中画的交叉线在html和xls中无法显示?

答:要想在html里面显示的话,线与线之间,线与字框之间不能有任何一点重合

所以你说的交叉线,如果是两条线直接交叉画的话,就只能由一条显示,需要分三条线段画。

……

关键一点就是看出错提示,找出问题解决问题,这在一定程度上是依赖于使用者Java编程的能力。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有