JasperReport、iReport

最近工作中用到報表,而我在學習JasperReport的過程中遇到了很多問題(主要是國內的資料太少了),網上很少找得到,在此我就把我找到的一些資料和大家共享,希望能對大家有所幫助。
1、JasperReport和iReport的資源,最新版本可以到下面官方網站得到

iReport官方網站
http://ireport.sourceforge.net
     JasperReport官方網站
http://jasperreports.sourceforge.net

2、安裝
   1)、JDK的安裝,並配置JAVA_HOME
比如我的JAVA_HOME路徑如下:
JAVA_HOME  D:\Program Files\j2sdk1.4.2_03

2)、由於中文的問題,所以還需要下載:itext-1.02b.jar和iTextAsian.jar包
下載地址:http://itext.sourceforge.net/downloads/iTextAsian.jar
並在CLASSPATH中設置
      例如我的CLASSPATH如下:
CLASSPATH
E:\Program Files\Apache Group\Tomcat4.1\webapps\testreport\WEB-INF\lib\itext-1.02b.jar;E:\Program

Files\Apache Group\Tomcat 4.1\webapps\testreport\WEB-INF\lib\iTextAsian.jar;E:\Program Files\Apache

Group\Tomcat 4.1\webapps\testreport\WEB-INF\lib;D:\tools\iReport0.2.3\lib

   3)、iReport的安裝iReport只要解壓就OK,如果沒有安裝Ant,可以直接在iReport下的noAnt目錄下,
運行startup.bat就可以了,這樣iReport就可以啓動了

4)、JasperReport
Jasperreport不需要任何配置,你只需將下載以後的jar包放到classpath下即可
5)、數據庫的JDBC驅動包
加入到CLASSPATH中

3、詳細資源
iReport官方提供了一些關於iReport視頻,對於初學者很有幫助:
   地址:http://ireport.sourceforge.net/docs.html

JasperReport官方提供的使用指南
地址:http://jasperreports.sourceforge.net/tutorial/index.html

JasperReport提供的一些例子:
地址:http://jasperreports.sourceforge.net/samples/index.html

4、常見問題
1)、iReport中提示框輸入中文是不能正常顯示,請將iReport下lib中的這個包刪除tinylaf.jar
   2)、在iReport中運行報表時如果出現亂碼問題,請檢查itext-1.02b.jar和iTextAsian.jar這兩個包是否加到CLASSPATH
3)、在jsp或servlet高度報表時出現亂碼或不顯示,請檢查你在報表設計過程中所設置的字體及其編碼
比如:pdfname、pdfencoding
5、下面是兩個調試例子
  Servlet:
import javax.servlet.*;
import javax.servlet.http.*;
import dori.jasper.engine.*;
import java.io.*;
import java.util.*;
import java.sql.*;

/**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class TestReport extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Connection conn = null;

try {

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn =
DriverManager.getConnection(


"jdbc:microsoft:sqlserver://192.168.0.10:1433;DatabaseName=am;user=sa;password=sa");

ServletContext servletContext =this.getServletContext();
File reportFile = new File(servletContext.getRealPath("test/iteminfo.jasper"));
Map parameters = new HashMap();
Integer i=new Integer(8);
parameters.put("pjId", i);
byte[] bytes =
JasperRunManager.runReportToPdf(
reportFile.getPath(),
parameters,
conn);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
} catch (JRException jre) {
System.out.println("JRException:" + jre.getMessage());
} catch (Exception e) {
System.out.println("Exception:" + e.getMessage());
}

}

public void doPost(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

doGet(request, response);

}

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