写JasperReport过程中出现的一些问题及解决方法

这两天做了一些JasperReport的报表,由于之前没有接触过,所以做的过程中出现了一些问题:

 

1.在ireport中设计好的报表,编译运行都是正常的,但是将.jasper文件加入到web工程中确一直显示一个空的页面。

     一开始以为是代码的问题,仔细检查并改了很多都没有解决。绞尽脑汁之后将思路改到报表设计本身的问题上,重新审视报表设计的细节发现,在报表的属性中发现了了一个属性设置"when no data",值为"no pages",这下豁然开朗,八成问题在此。因为我的报表不需要记录集,只需要传几个参数显示即可。将该属性的值改为“all sections, no detail”,并将报表的内容写在pageHeader里面这个问题就自然的解决了。

 

2.在报表显示出来后,发现有很多的图片都显示不出来。

     原因是JasperReport显示线条等的图片是通过调用其ImageServlet来实现的,所以查看例子代码找到web.xml文件,复制以下的Servlet定义片段到自己的工程的web.xml中。Servlet是定义好了,但是还需要告诉JasperReport如何找到Servlet,这样就需要将例子代码中的exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "./servlets/image?image="); 片段复制到自己的程序中。并且需要的话还要适当的修改后面的链接。

<servlet-name>ImageServlet</servlet-name>
    <servlet-class>
        net.sf.jasperreports.j2ee.servlets.ImageServlet
    </servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>ImageServlet</servlet-name>
    <url-pattern>/servlets/image</url-pattern>
  </servlet-mapping>
  <mime-mapping>
 3.中文显示都是问号。

     在调用

         exporter.exportReport();

     之前加上

         response.setContentType("text/html;charset=UTF-8");

     即可。

4.当线条有交差时部分显示不出来,如横线和竖线交差时,有时横线不显示,有时竖线不显示。

     这是因为JasperReport划线也是通过图片显示的,当线条交差时总会导致后画的线条区域覆盖了前面的线条,导致画不出来。唯一的解决方法是不要让线条交差。这样就会产生线条之间会出现脱节的现象,但是这也没有办法,总比没有好吧。:)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值