﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-seasun-随笔分类-1.13 jasperreports</title><link>http://www.blogjava.net/shiwenfeng/category/43012.html</link><description>在不断模仿、思考、总结中一步一步进步！</description><language>zh-cn</language><lastBuildDate>Wed, 09 Dec 2009 23:57:29 GMT</lastBuildDate><pubDate>Wed, 09 Dec 2009 23:57:29 GMT</pubDate><ttl>60</ttl><item><title>JasperReport的Samples介绍和学习</title><link>http://www.blogjava.net/shiwenfeng/archive/2009/12/08/305154.html</link><dc:creator>shiwf</dc:creator><author>shiwf</author><pubDate>Tue, 08 Dec 2009 06:17:00 GMT</pubDate><guid>http://www.blogjava.net/shiwenfeng/archive/2009/12/08/305154.html</guid><wfw:comment>http://www.blogjava.net/shiwenfeng/comments/305154.html</wfw:comment><comments>http://www.blogjava.net/shiwenfeng/archive/2009/12/08/305154.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shiwenfeng/comments/commentRss/305154.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shiwenfeng/services/trackbacks/305154.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt; color: #993300; font-family: Comic Sans MS">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>要运行sample下的例子，首先你要安装ant，并设置好环境变量 。然后到dos方式下，到某一个sample的目录，运行 ant view 则会展现报表</strong><br />
</span><span style="font-size: 10pt; font-family: Comic Sans MS"><br style="font-family: " />
<span style="color: #993300">1. alterdesign </span><br style="font-family: " />
该例子演示了报表编译后，在报表展现的时候如何动态的控制其中的元素比如让某一个矩形变色或其他 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">2. antcompile </span><br style="font-family: " />
演示如何让 ant 来编译 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">3. chart </span><br style="font-family: " />
演示了如何在报表中添加图像，JasperReport是用Scriptlet的方式往报表中添加图像，而Scriptlet是调用也是开源的jfreechart的Api来生成图形，去jfreechart看一下，该工具能的图形生成能力也很强 <br style="font-family: " />
<span style="color: #993300"><br style="font-family: " />
4. datasource </span><br style="font-family: " />
演示了如何在报表中使用各种数据源，能够使用beanarray beancollection，也可以用自定义的数据源，只要继承了JRDataSource的 <br style="font-family: " />
两个接口，这个能给用户提供非常大的灵活性，报表的数据不用局限于一条Sql语句，也可以使用存储过程，对生成报表中的数据也可以排序，二 次检索，等等 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">5. fonts<br style="font-family: " />
</span>各种字体的演示 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">6. horizontal </span><br style="font-family: " />
演示了水平分栏的报表，演示报表中分了三栏，其中还用到了textFieldExpression，就像if语句的效果来选择输出的内容 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">7. hyperlink </span><br style="font-family: " />
演示了各种样式的链接 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">8. images </span><br style="font-family: " />
演示了如何在报表中加入图像以及图像的显示方式 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">9. jasper <br style="font-family: " />
</span>演示了分组分栏的报表，演示中用了2次group <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">10. jcharts </span><br style="font-family: " />
演示了调用另一个开源的API jcharts来往报表中加入分析图形，原理同上chart，如果jfreechart都还不能满足你分析图形的要求，那到jcharts里找找看吧，说不定有 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">11. landscape </span><br style="font-family: " />
演示横向的报表 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">12. nopagebreak</span><br style="font-family: " />
演示比如在IE中不分页的方式打印出报表的内容，通过这个演示也可以了解报表输出如何配置参数 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">13. noreport</span><br style="font-family: " />
演示了如何直接通过java程序生成JasperPrint对象来输出 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">14. noxmldesign <br style="font-family: " />
</span>演示了如何直接通过java程序生成JasperDesign对象来动态的生成报表，根据这个例子，用户可以作出自定义选列的报表,当然比较麻烦，而且肯定自己要补充他的API库（JasperReport真是强大啊，呵呵) <br style="font-family: " />
<span style="color: #993300"><br style="font-family: " />
15. pdfencrypt </span><br style="font-family: " />
演示了pdf的输出方式，可以给pdf文件加密码，其实就是pdf输出方式的参数配置，具体有那些参数可配置，去看看API吧 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">16. printservice </span><br style="font-family: " />
演示了如何直接打印报表 <br style="font-family: " />
<span style="color: #993300"><br style="font-family: " />
17. query </span><br style="font-family: " />
演示了如何让查询的sql动态起来，比如你可以通过一个Jsp页面传报表的sql的where条件，order条件，甚至整个sql语句 <br style="font-family: " />
<span style="color: #993300"><br style="font-family: " />
18. rotation </span><br style="font-family: " />
演示了文字纵向显示的报表 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">19. scriptlet <br style="font-family: " />
</span>演示了如何继承JRDefaultScriptlet，并加入自己的处理语句，这个功能可是很强大的哦，看看这些接口<br style="font-family: " />
beforeReportInit() <br />
afterReportInit() <br />
beforePageInit() <br style="font-family: " />
afterPageInit() <br />
beforeColumnInit()<br />
afterColumnInit() <br style="font-family: " />
beforeGroupInit(String groupName) <br style="font-family: " />
afterGroupInit(String groupName) <br style="font-family: " />
看看这些名字就知道你能完成那些功能，比如显示一列数据后，马上跟上该列数据的分析图形，当然你也可以加上自己的方法并在报表中调用 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">20. shapes </span><br style="font-family: " />
演示了JasperReport中自带的图形，及能配置的参数当然你也能继承或者覆写JasperReport中的Api生成你要的图形， <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">21. stretch </span><br style="font-family: " />
演示了如何处理报表中数据拉伸以及带来周围的线及框的拉伸，你能了解到虽然黑框式表格不是JasperReport中缺省的展现方式， <br style="font-family: " />
但在JasperReport中不难实现 <br style="font-family: " />
<span style="color: #993300"><br style="font-family: " />
22. subreport </span><br style="font-family: " />
演示了子报表，还告诉你一个报表中可以有n个子报表，子报表中还可以嵌套子报表 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">23. tableofcontents </span><br style="font-family: " />
演示了如何生成一个有目录的，复杂的报表 <br style="font-family: " />
<br style="font-family: " />
<span style="color: #993300">24. unicode</span><br style="font-family: " />
演示了各种 字符编码 <br style="font-family: " />
<span style="color: #993300"><br style="font-family: " />
25. webapp</span> <br style="font-family: " />
演示了如何把报表放到一个JavaWeb项目中，可以用Jsp Servlet applet <br style="font-family: " />
</span><br />
<img src ="http://www.blogjava.net/shiwenfeng/aggbug/305154.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shiwenfeng/" target="_blank">shiwf</a> 2009-12-08 14:17 <a href="http://www.blogjava.net/shiwenfeng/archive/2009/12/08/305154.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JasperReports概述和运行原理</title><link>http://www.blogjava.net/shiwenfeng/archive/2009/12/08/305151.html</link><dc:creator>shiwf</dc:creator><author>shiwf</author><pubDate>Tue, 08 Dec 2009 05:58:00 GMT</pubDate><guid>http://www.blogjava.net/shiwenfeng/archive/2009/12/08/305151.html</guid><wfw:comment>http://www.blogjava.net/shiwenfeng/comments/305151.html</wfw:comment><comments>http://www.blogjava.net/shiwenfeng/archive/2009/12/08/305151.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shiwenfeng/comments/commentRss/305151.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shiwenfeng/services/trackbacks/305151.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt; font-family: Comic Sans MS"><span style="color: #993300"><span style="font-size: 12pt">JasperReports 是什么</span></span><br />
JasperReports是一个面向开发人员设计的开源Java类库， 通过它可以为Java应用程序增加报表功能。由于 JasperReports 不是独立的工具，所以不能对它进行独立安装。而是要通过应用程序的 CLASSPATH 来包含其类库，从而把它嵌入到 Java应用程序中。JasperReports 是一个 Java类库，也就是说它不是为最终用户准备的。它的目标用户是那些需要为应用程序添加报表功能的Java<br />
开发人员。 <br />
<br />
JasperReports采用 Lesser GNU Public Library (LGPL)许可协议，所以开放源代码的或不开放源代码的应用程序都可以使用它。通过链接来使用JasperReports 类库的应用程序不需要开放源代码，而需要对现有JasperReports 源代码进行修改的，那么所修改的内容必须也遵循 LGPL 进行发布。更详细的说明可参考 <a href="http://www.gnu.org/copyleft/lesser.html">http://www.gnu.org/copyleft/lesser.html</a>。尽管 JasperReports 主要用于通过 Servlet API 来为基于 Web 的应用程序增加报表功能，但它并不是完全依赖于 Servlet API或任何 Java EE类库。因此，它并不仅限于 Web 应用程序。用 JasperReports 来建立独立的桌面程序或命令行程序来生成报表的开发从未停止过。可是，话说又回来，JasperReports除了是一个 Java类库之外，什么都不是。它做的事情只是通过提供 API来为各种Java应用程序增加生成报表的功能。 <br />
JasperReports需要 Java Development Kit (JDK) 1.4或更新的版本来进行编译，以便和 JasperReports 的 Java 类库一同工作。同时还需要 Java Runtime Environment (JRE) 1.3或更新的版本来运行这些应用程序。早期版本的 JasperReports 需要 JDK 来运行 JasperReports 应用程序 (严格地讲，JasperReports 需要 tools.jar 被设置在 CLASSPATH 环境变量中，JDK包含了 tools.jar，而 JRE 中没有)。然而，从 0.6.4 版以后，JasperReports把 Eclipse Java Development Tools (JDT)编译器捆绑在一起，因此不再需<br />
要 JDK 来运行部署后的应用程序。本书的例子是用 JDK1.6 开发的，但它们在JasperReports支持的任何其它 JDK 或 JRE上也应该能够顺利地编译和运行。&nbsp; <br />
<br />
<span style="color: #993300">JasperReports 的特点</span> <br />
JasperReports 除了以文本数据方式生成报表外，还可以生成包含图片、图表和图形的专业报表。JasperReports的主要特点包括:&nbsp; <br />
&#8226;&nbsp; 灵活的报表排版 <br />
&#8226;&nbsp; 多样的数据表现方式 <br />
&#8226;&nbsp; 多样的数据提供方式 <br />
&#8226;&nbsp; 支持从多种数据源接收数据 <br />
&#8226;&nbsp; 能够生成水印 <br />
&#8226;&nbsp; 能够生成子报表 <br />
此外，它还可以用许多种格式来输出报表。下面的各小节将对这些特点做简要介绍。 <br />
<br />
<span style="color: #993300">类库依赖</span> <br />
JasperReports借用了其它的开源Java类库来实现其部分功能，其中包括：<br />
iText: 一个用于生成和处理 PDF的类库。另外，它还可以生成和处理 RTF、XML和 HTML文档。JasperReports用它来导出 PDF和 RTF 格式的报表。要获得有关 iText 的详细介绍，可以访问 http://www.lowagie.com/iText/。 <br />
<br />
JFreeChart: 一个 Java类库，可用于生成各种图表，包括：饼图、条形图、线形图、区域图、等等。JasperReports通过 JFreeChart 来实现其图表功能。有关 JFreeChart 的详细介绍可以查阅http://www.jfree.org/jfreechart/。<br />
&nbsp;<br />
Apache POI: 一个Java类库， 用于创建和处理各种建立在Microsoft的OLE2混合文档格式基础上的Microsoft Office格式的文档。 JasperReports通过POI来导出XLS 格式的报表，更多的 Jakarta POI有关介绍可查阅<a href="http://poi.apache.org/">http://poi.apache.org/</a>。 <br />
<br />
JAXP: 用于解析和转换XML文档的 Java API，JasperReports用它来解析XML文件。JAXP 包含在 Java SE 5.0中。如果使用更早版本的Java SE，也可以要独立地下载它。有关 JAXP的详细介绍可以查阅<a href="https://jaxp.dev.java.net/">https://jaxp.dev.java.net/</a>。 <br />
<br />
Apache Commons: 一套 Java类库，提供了大量的可重用组件。JasperReports使用了其中的 Commons Digester、BeanUtils、Logging组件来辅助JAXP 解析XML。关于 Apache Commons的详细介绍可查阅<a href="http://commons.apache.org/">http://commons.apache.org/</a>。<br />
<br />
<span style="color: #993300">典型的开发流程<br />
</span>下面的图形给出了用 JasperReports创建报表的典型开发流程：&nbsp;<br />
<img style="width: 622px; height: 648px" height="648" alt="" src="http://www.blogjava.net/images/blogjava_net/shiwenfeng/a.jpg" width="622" border="0" /><br />
用 JasperReports进行开发时，第一步要创建报表模板，它是一个 XML文件。它可以通过手工编码来完成，也可以用图形化的报表设计软件完成。虽然JasperReports的报表模板是 XML文件，但其文件名却用.jrxml 来作为扩展名。JasperReports XML模板通常就是指 JRXML文件，本书中也使用这一术语。 <br />
<br />
<br />
<br />
</span>
<img src ="http://www.blogjava.net/shiwenfeng/aggbug/305151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shiwenfeng/" target="_blank">shiwf</a> 2009-12-08 13:58 <a href="http://www.blogjava.net/shiwenfeng/archive/2009/12/08/305151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>