寫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劃線也是通過圖片顯示的,當線條交差時總會導致後畫的線條區域覆蓋了前面的線條,導致畫不出來。唯一的解決方法是不要讓線條交差。這樣就會產生線條之間會出現脫節的現象,但是這也沒有辦法,總比沒有好吧。:)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章