`
lhy5201314
  • 浏览: 122699 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

JasperReport 学习之路

阅读更多
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



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编程的能力。

原文 http://www.javaresearch.org/forum/thread.jsp?column=316&thread=14374
分享到:
评论

相关推荐

    JasperReport学习之路

    JasperReport学习之路 网上摘录

    jasperreport学习 之 javabean封装成list作为数据源.pdf

    JasperReport学习之JavaBean封装成List作为数据源 本文档主要介绍了使用JavaBean封装成List作为JasperReport的数据源的方法。JasperReport是一款流行的开源报表工具,能够生成各种格式的报表,而JavaBean是一个Java...

    jasperReport学习资料

    **JasperReport学习资料概述** JasperReport是一款强大的开源报表工具,主要用来设计和生成静态或动态的报表。它能够支持各种数据源,包括数据库、XML文件、Java对象等,并且能够导出报表为PDF、HTML、Excel等多种...

    jasperReport学习文档资料.rar

    本资料包"jasperReport学习文档资料.rar"是针对JasperReports及其配套设计工具iReport的学习资源集合,对于想要掌握报表开发的IT人员来说极具价值。 首先,iReport是JasperReports的主要设计工具,提供了一个图形化...

    JasperReport 学习必备手册

    JasperReport 学习必备手册

    jasperreport学习资料(附jasperreport API).

    这个压缩包文件包含了jasperreport的学习资料和API文档,是学习和掌握JasperReport的重要资源。 JasperReport的核心概念: 1. 报表模板:报表的布局和样式在设计时就被定义好,存储为`.jrxml`文件。这些模板包含了...

    Jasperreport+ireport学习笔记3

    标题与描述概述的知识点主要集中在使用JasperReport与iReport工具进行报表设计,特别是如何在报表中集成图表功能。以下是对这一主题的深入探讨: ### JasperReport与iReport简介 JasperReport是一款开源的报表工具...

    JasperReport实例导入可用

    **JasperReport 实例导入详解** JasperReport 是一个开源的报表工具,它允许开发者创建复杂的报告设计,并在各种应用程序中嵌入...学习和掌握 JasperReport 能极大地提升开发效率,使你在数据分析和展示方面得心应手。

    JasperReport报表设计总结

    ### JasperReport报表设计总结 ...通过本文的学习,读者可以更好地理解和掌握如何使用JasperReport进行报表设计与开发。随着对JasperReport的深入了解,开发者可以充分利用其强大的功能来满足各种复杂的报表需求。

    jasperReport测试例子

    这个测试例子是关于如何使用jasperReport进行报表设计和开发的实践代码和学习资源集合。通过这个测试项目,我们可以深入理解jasperReport的工作原理,以及如何在Java应用程序、JSP或Web环境中集成报表功能。 ...

    jasperreport for java developer

    在学习JasperReport时,你需要了解以下几个关键知识点: 1. **报表设计基础**:理解报表的基本结构,如字段、表达式、变量、团体和样式。 2. **JRXML文件**:报表的定义存储在JRXML文件中,这是一个XML格式,包含...

    jasperreport

    同时,可能还包含了示例代码和文档,帮助开发者理解和学习如何使用JasperReport。 总的来说,JasperReport是一个功能强大的报表工具,它提供了丰富的设计元素和灵活的数据处理方式,使得即使复杂的业务报表也能轻松...

    ireport+jasperreport API

    1. JasperReport API:学习如何创建和填充jasperReport模板,理解JRDesign对象和JRFillDataset的概念,它们是报表生成的核心。 2. 动态表头:通过使用Group和HeaderFooter元素,可以实现根据数据变化的表头,提供更...

    iReport与JasperReport简介

    **五、学习资源** 对于初学者,可以从官方文档和社区资源入手。"iReport中文详细教程.pdf"是一个很好的起点,它涵盖了iReport的基础知识和进阶技巧,可以帮助读者快速上手。 总的来说,iReport和JasperReport是Java...

    Jasperreport最全资料

    总的来说,这个"Jasperreport最全资料"提供了全面的学习资源,无论你是初学者还是有经验的开发者,都能从中受益。通过深入学习和实践,你将能够熟练地利用JasperReport为你的Java项目构建高质量、交互式的报表系统。

    jasperreport一个子报表的例子

    通过这个例子,你可以学习到如何在JasperReport中创建子报表,如何在主报表中引用它,以及如何处理数据和参数传递。对于初学者来说,这是一个很好的实践项目,能够帮助理解和掌握JasperReport的子报表功能。

    jasperreport 6.4.1报表动态列,以及生成导出html

    这个特定的压缩包文件包含了一个关于如何实现jasperreport动态列以及生成HTML导出的示例,对于使用Eclipse进行Java开发的人员来说,这是一个非常实用的学习资源。 动态列的概念在于,报表的列数不是固定的,而是...

    jasperreport 教程

    **JasperReport 深度解析教程** JasperReport 是一款强大的...总之,JasperReport 是一个功能强大且灵活的报表工具,通过本教程的学习,你将能够熟练掌握其设计、开发和使用技巧,从而在项目中生成专业级别的报表。

    Jasperreport资料

    **JasperReport——深度解析与应用指南** JasperReport是一款强大的开源报表工具,它允许开发者在Java应用程序中创建复杂的报表。作为一个基于纯Java的报表引擎,JasperReport能够处理多种数据源,包括数据库连接、...

Global site tag (gtag.js) - Google Analytics