java開發(fā)者 網(wǎng)友 溪澗
多謝了!
最近工作中用到報表,而我在學(xué)習(xí)JasperReport的過程中遇到了很多問題(主要是國內(nèi)的資料太少了),網(wǎng)上很少找得到,在此我就把我找到的一些資料和大家共享,希望能對大家有所幫助。
1、JasperReport和iReport的資源,最新版本可以到下面官方網(wǎng)站得到
iReport官方網(wǎng)站:
http://ireport.sourceforge.net
JasperReport官方網(wǎng)站:
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中設(shè)置
例如我的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)、數(shù)據(jù)庫的JDBC驅(qū)動包
加入到CLASSPATH中
3、詳細資源
iReport官方提供了一些關(guān)于iReport視頻,對于初學(xué)者很有幫助:
地址: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中運行報表時如果出現(xiàn)亂碼問題,請檢查itext-1.02b.jar和iTextAsian.jar這兩個包是否加到CLASSPATH
3)、在jsp或servlet高度報表時出現(xiàn)亂碼或不顯示,請檢查你在報表設(shè)計過程中所設(shè)置的字體及其編碼
比如:pdfname、pdfencoding
5、下面是兩個調(diào)試例子
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);
}
}
JSP:
<%@ page contentType="text/html;charset=GBK" %>