您的位置:首页 > 编程语言 > ASP

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

2008-10-31 17:00 495 查看
这两天做了一些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划线也是通过图片显示的,当线条交差时总会导致后画的线条区域覆盖了前面的线条,导致画不出来。唯一的解决方法是不要让线条交差。这样就会产生线条之间会出现脱节的现象,但是这也没有办法,总比没有好吧。:)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐