1
、概述
如何實現
發Web報表有很多的選擇,自定義CSS+HTML或是XSLT+XML或是其他控件,特別是支持圖表的控件,比如:jfreechart。本文作為Web報表的一種實現方式,建議你使用Jasperreport作為報表控件,第一、二部分已經對制作報表和開發胖客戶端報表應用做了介紹,其實有很多的文章可以參考實現第三部分的內容,不止是我寫的這篇文章。
2
、數據連接建立
參考
http://blog.csdn.net/jemlee2002/archive/2004/09/28/JJEM.aspx,
這里有詳細的介紹數據庫的連接過程。
3
、拷貝必要的
jar
文件到
Web
應用的
WEB-INF\lib
目錄
每個Web應用都會有WEB-INF目錄,但是lib是不一定有的,如果沒有就創建它,本文需要的jar庫文件有3個:
jasperreports-0.5.3.jar :jasperreports執行時需要的API
iTextAsian.jar :亞洲字符集支持
itext-1.02b.jar :其他字符集支持
如果你的報表全英文或是不需要支持亞洲字符集,那么iTextAsian.jar、可以不要。
4
、創建
repotrs
目錄并導入
.jasper
文件
在Web應用中根目錄下創建repotrs目錄,其實這是一種建議,沒有必要完全按照這樣做,你可以根據你的業務需要創建N個目錄或是層次目錄。
把.jasper文件拷貝到repotrs目錄下,比如例子中的BusinessRpt.jasper文件。
5
、例子程序
Test.jsp文件的內容:
<%@ page session="false" %>
<%@ page import="dori.jasper.engine.*" %>
<%@ page import="javax.naming.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<%??
?? DataSource ds = null;
?? try{
????
?? InitialContext ctx=new InitialContext();
????
?? ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
????
?? Connection conn = ds.getConnection();
????
?? //裝載jasper文件
????
?? File business_rpt = new File(application.getRealPath("/reports/BusinessRpt.jasper"));
????
?? //配置參數,可以參考《第二部分:使用Jasperreport作為報表控件開發胖客戶端報表應用》
?????
?
?//
http://blog.csdn.net/jemlee2002/archive/2004/10/08/JJem3.aspx
????
?? //ProjectName就是iReport的變量$P{ProjectName}的名稱,
????
?? //參考第一部分的5.6添加參數和使用參數
????
?? //proname就是從界面上獲取的值。
Map parameters = new HashMap();
????
?? parameters.put("ProjectName ", proname);
??????? // JasperRunManager是一個輸出控制管理類,下文會提及部分內容
????
?? JasperRunManager.runReportToHtmlFile(business_rpt.getPath(),parameters,conn);
?????? //如果創建報表成功,則轉向該報表,其實可以把報表套在框架內,這樣實現比較有意義的報表格式。
????
?? response.sendRedirect("/reports/BusinessRpt.html");
?? }catch(Exception ex){
?????? out.print("出現例外,信息是:"+ex.getMessage());
?????? ex.printStackTrace();
?? }
%>
</head>
<body>
</body>
</html> |
6
、關于
JasperRunManager
JasperRunManager有很多的靜態方法,控制輸出的格式,比如輸出格式是pdf或是html等,建議瀏覽JasperRunManager的一些方法,這樣對開發報表輸出有幫助。
7
、輸出內容
例子中輸出格式是以HTML文件格式,所以web服務器可以直接解釋并顯示,效果不錯。