jasperreports,ireport学习

jasperreports,ireport学习
2007-05-11 23:27

   今天兴起,开始研究ireportjasperreports。今天只学了点ireport设计报表模板,而且超简单的那种。jasperreports文档http://www.mylinux.com.cn/newsTextAction.do?id=10,549,不错的东西。

准备工作:

1.jasperreport下载地址:(我下的是jasperreports-1.3.3http://sourceforge.net/project/showfiles.php?group_id=36382

ireport下载地址:(我下的是iReport1.3.3

http://sourceforge.net/project/showfiles.php?group_id=64348

因为我装了jbuilder,所以就不用在装JDK

2.jasperreport.jar包放到JDK/lib下,把JDKTools.jar和数据库驱动包放到iReport/lib;如果iReport/lib下没有iTextAsian.jar包,要下载。

总结:

           1.Report0.3.2Jasperreport0.5.3以上都要求JDK1.4以上版本,所以要注意Oracle9装好会自动把java环境设为Oracle自带的JDK1.3.1,会导致无法运行iReport。这时候卸了JDK或者jbuilder,重装一下。如果项目用ORACLE的话,机器上至少装oracle客户端了,一般可能先装JDK,再装oracle什么的,就出麻烦了!

2.   安装完毕后第一次打开时可能菜单会出些乱码,在Options->选项->general->语言,择最上面的中文(中国),如果还不行的话就重启一下iReport一般都没问题了。

3.设计静态报表模板时,word输出格式问题,预览时总是空白页。
解决办法:可以通过设置报表属性中的当没有数据时的显示方式为:除detail外的所有地方。

4. net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font :

pdfFontName   : STSong-Light

pdfEncoding   : Cp1252

isPdfEmbedded : false

ireport为了以PDF格式输出中文,需要在“PDF Font Name”选项中选择STSong-Light,在中文字体定义中勾选“Default”、“PDF Embedded”,“PDF Encoding”选择“UniGB-UCS2-H (Chinese Simplified)”。

5.Java.lang.IllegalStateException: getOutputStream() has already been called for this response

在写JSP程序的时候,如果程序中调用了response.getOutputStream()去向客户端输出文件等数据流,容器就会抛出这样的异常。

产生这样的异常原因:是web容器生成的servlet代码中有out.write(""),这个和JSP中调用的response.getOutputStream()产生冲突.即Servlet规范说明,不能既调用response.getOutputStream(),又调用response.getWriter(),无论先调用哪一个,在调用第二个时候应会抛出IllegalStateException,因为在jsp中,out变量实际上是通过response.getWriter得到的,你的程序中既用了response.getOutputStream,又用了out变量,故出现以上错误。Erp100博客r‑m6f e-M[1][1]M8_
  解决方案:在程序的最后添加:out.clear(); out = pageContext.pushBody(); 或者直接用servlet写

6.detai与ColumnFooter间有一大段空白,

从 iReprot 工具列社定 [编辑]>[报表属性] ,开启后的窗口选[More...] -> [Floating column footer] 打勾

      7.在浏览器中显示JasperReports PDF文档

http://www.ensode.net/jasperreports_pdf_send_to_browser_pg2.html

把PDF直接“流向”浏览器。为此,我们必须首先通过调用ServletContext中的getResourceAsStream()方法以流形式得到编译的资源。这个方法返回一个java.io.InputStream的实例—我们可以把它作为一个参数传递给JasperRunManager类的runReportToPdfStream()方法。

 

8.分组时注意sql语句加上order by+分组字段,否则无法显示分组功能

9. jasperreports:pdf,ecxel都没出现乱码,html乱码

问题:
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
我改成:OutputStream out = response.getOutputStream();
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out);

发现OutputStream还真好,不会出现乱码。

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值