JasperReport 与iReport 的配置与使用(9)

2019-09-01 00:04

上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 输出方式的报表,有兴趣的 我可以在后面放上代码

一. JasperReports简介

JasperReports是一个强力的报表产生工具,他有能力描述丰富内容到屏幕上、到打印机或到PDF, HTML, XLS, CSV和XML文件。它完全用Java编写的,并可在各种Java应用(包括J2EE或WEB应用)中用来产生动态内容。它的主要目的是以一种简单而灵活的方式来帮助创建导向的页面。

JasperReports组织根据在一个XML文件中定义的报表设计通过JDBC来接受来自一个关系数据库中的数据. 为了以数据来填充报表,报表设计必须首先被编译。

描述报表设计的XML文件的编译通过执行dori.jasper.engine.JasperManager 类暴露的compileReport()方法。 通过编译,报表设计被装载入一个报表设计对象中,然后系列化并存储在磁盘上(dori.jasper.engine.JasperReport)。当应用程序想以数据来填充特定的报表设计时会使用这个已系列化的对象。事实上,报表设计的编译意指描述报表设计的XML文件中定义的所有Java表达式的编译。为了检查报表设计

的一致性,在编译时做各种检验。结果被准备用来填 充报表设计,然后被用来以不同的数据集来产生文档 。 为了填充一个报表设计,可使用由dori.jasper.engine.JasperManager类暴露的 fillReportXXX()方法。这些方法接受作为参数的报表设计对象,或描述特定报表设计对象的文件, 在一个系列化的格式中,和一个从其中接受数据填 充报表的数据库JDBC链接。

结果是一个描述准备用来打印文档的对象(dori.jasper.engine.JasperPrint)并可被以一个系列化格式存储在磁盘上。 为以后使用,或可被分发到打印机,到屏幕或可被转换到一个PDF, HTML, XLS, CSV 或XML文档。 二. JasperReports快速使用流程 1. 主要类

运行JasperReports 时使用的主要类 dori.jasper.engine.JasperCompileManager dori.jasper.engine.JasperFillManager dori.jasper.engine.JasperPrintManager dori.jasper.engine.JasperExportManager

这些类表现JasperReports引擎的正面(fa?ade), 他们有各种静态方法简化API功能的访问并用来编译一个XML报表设计、填充报表、打印它或输出到PDF, HTML和 XML文件。 dori.jasper.view.JasperViewer 这个可用来观察产生的报表。 dori.jasper.view.JasperDesignViewer 这个可用来观察报表设计。 2. 编译报表设计

报表设计由一个具有在jasperreport.dtd 文件中定义的结构的XML文件来表现。为了根据这样的报表设计来产生报表,需要编译它。

编译可通过使用由dori.jasper.engine.JasperCompileManager 类暴露的compileReportXXX()方法来完成。 当编译一个报表设计时,引擎会创建一个包括所有报表表示式的Java类文件,这个类是使用Java编译器编译并在结果.jasper文件中存储字节码。

默认情况下,JasperReports使用目前JVM类路径来编译报表文件(java.class.path系统属性)并以目前工作目录作为产生文件的临时存放位置。

为了定制报表编译过程,JasperReports充许通过提供一个值给系统属性jasper.reports.compile.class.path来覆盖默认行为,这将被用报表类编译的类路径,赋一个值给系统属性jasper.reports.compile.temp,这个将被用作临时目录

XML验证默认是打开的,可通过设定系统属性jasper.reports.compilation.xml.validation 为false来关闭。 如果你想使用一个不同的Java编译器,如jikes,你可以使用jasper.reports.compiler系统属性来提供编译器程序的名字。在你使用jikes情况下,请确信你将rt.jar文件加入到类路径中,可通过上面提及的系统属性 jasper.reports.compile.class.path。

You can see some of those in action in the supplied \NF/classes/servlets/CompileServlet.java files. 3. 观察报表设计

报表设计可通过使用dori.jasper.view.JasperDesignViewer应用程序来察看。在其main()方法中,它接收那些包括报表设计的文件的名字来观看。这可以是XML文件或编译过的报表设计。 4. 填充报表

一个编译过的报表设计可通过调用dori.jasper.engine.JasperFillManager 类的fillReportXXX()方法来产生报表。 5. 观看报表

产生的报表可通使用dori.jasper.view.JasperViewer应用来观看。在其main()方法中它接受包括报表的文件的名字来观看。

6. 打印报表

产生的报表可使用doriJasper.engine.JasperPrintManager 类暴露的静态方法printReport(), printPage()或printPages()来打印。

7.导出到PDF, HTML 或XML格式

在已经填充一个报表后,我们也可以通过使用dori.jasper.engine.JasperExportManager类的exportReportXXX()方法来以 PDF, HTML或XML格式导出它。 三. 技术指南简述 1.报表设计

一个报表设计描述一个被JasperReports引擎用来分发动态内容到打印机,到屏幕或到WEB的模板。存储在数据库中的数据根据报表设计被组织达到准备到打印,页面导向文档。

报表设计是在XML文件中定义并且必有一个特别的结构。此结构是在一个由JasperReports 引擎一起提供的DTD文件中声明的(XML类型定义文件jasperreport.dtd)。然后编译XML文件,为了在后面的报表填充操作中使用他们。

为了创建一个简单的报表设计,我们不得不编辑一个有以下结构的XML文件:

2.参数

参数是传入到报表填充操作的对象引用 参数可的构造SQL查询 3.数据源

JasperReports使用一个叫JRDataSource的接口来支持各种类型的数据源 4.字段

报表字段代表从数据源映射数据到报表产生程序的唯一途径 5.表达式

表达式是JasperReports的强大特点,它们可被声明的报表变量使用来执行各种计算。 6.变量

报表变量是才一个表达式开始时建立的特殊的对象。

变量可以在相应的表达式中执行内置类型的计算,如:count,sum,average,lowest,highest等 7.报表区

当我们建立一个报表设计时,我们需要定义报表区的内容和布局。报表设计的整个结构基于以下报表区, <pageHeader>, <columnHeader>, <groupHeader>, <detail>, <groupFooter>, <columnFoter>, <pageFooter>, <summary>. 8.组 </p><p>组代表了在报表上组织数据的一个灵活的方式,当我们填充一个报表时,JasperReports引擎可字段检测组表达式<groupFooter> 和 <groupHeader>等是否完整。 9.字体和Unicode支持 </p><p>你可以用任何语言来创建你的报表。 10. Scriptlets </p><p>Scriptlets是java代码序列,在每次报表事件发生时被执行。通过 scriptlets,用户可以影响被报表变量存储的值。 当我们创建一个JasperReports scriptlet类时,开发者要实现或重载几个方法,象:</p><p>beforeReportInit(), afterReportInit(), beforePageInit(), afterPageInit(), beforeGroupInit(), afterGroupInit()等,这些方法当填充报表时在适当的时候被报表引擎调用。 11.子报表 </p><p>子报表是报表产生工具的重要特征,它允许更复杂报表的创建并简化设计工作。 子报表在创建主从报表时非常有用。 </p><p></p> <br /> <p><script type="text/javascript">s("content-m");</script></p> </div> <div class="m-pages"><li><a>共10页: </a></li><li><a href='722808_8.html'>上一页</a></li><li><a href='722808.html'>1</a></li><li><a href='722808_2.html'>2</a></li><li><a href='722808_3.html'>3</a></li><li><a href='722808_4.html'>4</a></li><li><a href='722808_5.html'>5</a></li><li><a href='722808_6.html'>6</a></li><li><a href='722808_7.html'>7</a></li><li><a href='722808_8.html'>8</a></li><li class="thisclass"><a href='#'>9</a></li><li><a href='722808_10.html'>10</a></li><li><a href='722808_10.html'>下一页</a></li></div> <div class="down-word"> <div class="word-ico"></div> <div class="word-tit"> <span class="docx">JasperReport 与iReport 的配置与使用(9).doc</span> <span>将本文的Word文档下载到电脑</span> <span>下载失败或者文档不完整,请联系客服人员解决! </span> </div> <div class="word-pic"><a href="javascript:;">下载这篇word文档</a></div> </div> </article> <div class="art-prenext"> <p>下一篇:<a href="/wenku/jiaoyu/722807.html">最新鄂教版三年级科学上册期中考试试卷</a></p> </div> <script type="text/javascript">s("like-m");</script> <div class="main-tab"><a class="on" href="javascript:;">相关阅读</a></div> <div class="tab-box"> <ul class="main-new on clearfix"> <li><a href="/wenku/jiaoyu/1151876.html" title="中国石油大学(北京)远程在线考试答案—《油气">中国石油大学(北京)远程在线考试答案—《油气</a></li> <li><a href="/wenku/jiaoyu/1229519.html" title="中国移动网上大学传输设备PTN烽火L2题库">中国移动网上大学传输设备PTN烽火L2题库</a></li> <li><a href="/wenku/jiaoyu/1287270.html" title="苏教版三年级数学下册口算练习题竖式精选(两">苏教版三年级数学下册口算练习题竖式精选(两</a></li> <li><a href="/wenku/jiaoyu/1230553.html" title="2021年高考全国乙卷文科数学试题答案">2021年高考全国乙卷文科数学试题答案</a></li> <li><a href="/wenku/jiaoyu/1150887.html" title="2019年江苏五年制专转本英语统考真题">2019年江苏五年制专转本英语统考真题</a></li> <li><a href="/wenku/jiaoyu/938557.html" title="《统计学》复习题(3)">《统计学》复习题(3)</a></li> <li><a href="/wenku/jiaoyu/1131506.html" title="大型集团党建制度(包括三会一课、党员学习、">大型集团党建制度(包括三会一课、党员学习、</a></li> <li><a href="/wenku/jiaoyu/1053491.html" title="干燥机,润磨机设备操作维护规程">干燥机,润磨机设备操作维护规程</a></li> <li><a href="/wenku/jiaoyu/1144707.html" title="2006年中国药科大学有机化学考研专业课真题及">2006年中国药科大学有机化学考研专业课真题及</a></li> <li><a href="/wenku/jiaoyu/688148.html" title="夏季减肥打造小蛮腰">夏季减肥打造小蛮腰</a></li> </ul> </div> <div class="main-tab"><a class="on" href="javascript:;">本类排行</a></div> <div class="tab-box"> <ul class="main-new on clearfix"> <li><a href="/wenku/jiaoyu/1287711.html" title="2022最新数学教师工作总结方案多篇">2022最新数学教师工作总结方案多篇</a></li> <li><a href="/wenku/jiaoyu/1230558.html" title=" 2021高考全国甲卷文科数学试题及答案"> 2021高考全国甲卷文科数学试题及答案</a></li> <li><a href="/wenku/jiaoyu/1151861.html" title="中国石油大学(北京)远程在线考试答案—《安全">中国石油大学(北京)远程在线考试答案—《安全</a></li> <li><a href="/wenku/jiaoyu/1151866.html" title="石油大学《化工过程设备设计》主观题(单数)">石油大学《化工过程设备设计》主观题(单数)</a></li> <li><a href="/wenku/jiaoyu/1151863.html" title="中国石油大学(北京)远程在线考试答案—《催化">中国石油大学(北京)远程在线考试答案—《催化</a></li> <li><a href="/wenku/jiaoyu/1092360.html" title="石油大学远程在线考试《机械制造基础》试题答">石油大学远程在线考试《机械制造基础》试题答</a></li> <li><a href="/wenku/jiaoyu/666323.html" title="广西路网项目公路工程文件材料收集立卷归档实">广西路网项目公路工程文件材料收集立卷归档实</a></li> <li><a href="/wenku/jiaoyu/718492.html" title="六年级汉语拼音总复习题(新星小学)">六年级汉语拼音总复习题(新星小学)</a></li> <li><a href="/wenku/jiaoyu/1278950.html" title="最新苏教版三年级数学上册《间隔排列》易错题">最新苏教版三年级数学上册《间隔排列》易错题</a></li> <li><a href="/wenku/jiaoyu/1271665.html" title="部编版三年级语文上册基础知识练习(2021期末">部编版三年级语文上册基础知识练习(2021期末</a></li> </ul> </div> </div> <footer class="footer"> <p class="bt-links"><a href="https://m.77cn.com.cn">手机版</a><span class="v-line">|</span><a href="https://www.77cn.com.cn">PC版</a><span class="v-line">|</span><a href="https://m.77cn.com.cn/fww">范文大全</a></p> <p>Copyright © 2019-2022 免费范文网 版权所有<br/> 声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。<br/>客服QQ: 邮箱:tiandhx2@hotmail.com<br/> <a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">苏ICP备16052595号-18</a> </p> <div style="display:none;"> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?6e245478384fea490ec3a2317ee103ab"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </div> </footer> <div class="theme-popover"> <div class="theme-poptit"> <a href="javascript:;" title="关闭" class="close">×</a> <b>注册会员免费下载</b>(下载后可以自由复制和排版) </div> <div class="theme-popbod dform"> <!--<p class="downtit">下载本文档需要支付 <i>7</i> 元</p>--> <!--<p class="chose"><span>支付方式:</span><span class="pay1"><img src="https://www.77cn.com.cn/img/wxpay.jpg" class="over"></span> <span class="pay2"><img src="https://www.77cn.com.cn/img/alipay.jpg"></span></p>--> <!--<div class="youke_pay">--> <!--<div class="wxpay"><a href="javascript:;">微信支付并下载</a></div>--> <!--<div class="alipay" style="display:none;"><a href="javascript:;">支付宝支付并下载</a>--> <!--</div>--> <!--</div>--> <p class='wxpay'><a href='https://www.77cn.com.cn/user/index.php'>马上注册会员</a></p> <p class="downtxt">注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。<br>微信: QQ:</p> </div> </div> <div class="theme-popover-mask"></div> <script> //menu $(".header .menu").on("click", function(){ $("body").append("<div class=\"mask-bg menu-mask-bg\"></div>"); $(".menu-slide").show(); $("html,body").css({height:$(window).innerHeight(), overflow:"hidden"}); setTimeout(function(){ $(".menu-slide").css({transform:"translateX(-50px)"}); },50) }); $("body").on("click", ".menu-mask-bg", function(){ $(".menu-slide").css({transform:"translateX(-100%)"}); $(".menu-mask-bg").remove(); $("html,body").removeAttr("style"); setTimeout(function(){ $(".menu-slide").hide(); },300) }); //search $(".header .search").click(function(){ if($(".search-box").is(":hidden")){ $(this).children("i").removeClass("search-icon").addClass("close-icon"); $(".search-box").fadeIn("fast"); }else{ $(this).children("i").removeClass("close-icon").addClass("search-icon"); $(".search-box").fadeOut("fast"); } }); //nav if($(".nav").length > 0) { var nav = new Swiper(".nav",{ slidesPerView: "auto" }); } </script> <script> $(".pay1 img").click(function () { $(".wxpay").css("display", "block"); $(".alipay").css("display", "none"); $(".pay1 img").addClass("over"); $(".pay2 img").removeClass("over"); }); $(".pay2 img").click(function () { $(".wxpay").css("display", "none"); $(".alipay").css("display", "block"); $(".pay1 img").removeClass("over"); $(".pay2 img").addClass("over"); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { $('.word-pic a').click(function(){ $('.theme-popover-mask').fadeIn(100); $('.theme-popover').slideDown(200); $(".vip-up").hide(); $(".vip-pay").hide(); var downid = '722808' $('.wxpay a').click(function(){ var payurl = 'https://www.77cn.com.cn/hupipay/payment_pay_tz.php?payway=wx&aid='; payurl = payurl.replace('payment', 'youke'); var gotourl = payurl + downid location.href = gotourl; }); $('.alipay a').click(function(){ var payurl = 'https://www.77cn.com.cn/hupipay/payment_pay_tz.php?payway=ali&aid='; payurl = payurl.replace('payment', 'youke'); var gotourl = payurl + downid location.href = gotourl; }); }) $('.theme-poptit .close').click(function(){ $('.theme-popover-mask').fadeOut(100); $('.theme-popover').slideUp(200); }) }) </script> <script src="/js/gobacktop.js" type="text/javascript"></script> </body> </html>