轉(zhuǎn)帖|其它|編輯:郝浩|2011-09-14 14:41:24.000|閱讀 568 次
概述:如何實(shí)現(xiàn)發(fā)Web報(bào)表有很多的選擇,自定義CSS+HTML或是XSLT+XML或是其他控件,特別是支持圖表的控件,比 如:jfreechart。本文作為Web報(bào)表的一種實(shí)現(xiàn)方式,建議你使用Jasperreport作為報(bào)表控件,第一、二部分已經(jīng)對(duì)制作報(bào)表和開發(fā)胖客 戶端報(bào)表應(yīng)用做了介紹,其實(shí)有很多的文章可以參考實(shí)現(xiàn)第三部分的內(nèi)容,不止是我寫的這篇文章。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
1、概述
如何實(shí)現(xiàn)發(fā)Web報(bào)表有很多的選擇,自定義CSS+HTML或是XSLT+XML或是其他控件,特別是支持圖表的控件,比 如:jfreechart。本文作為Web報(bào)表的一種實(shí)現(xiàn)方式,建議你使用Jasperreport作為報(bào)表控件,第一、二部分已經(jīng)對(duì)制作報(bào)表和開發(fā)胖客 戶端報(bào)表應(yīng)用做了介紹,其實(shí)有很多的文章可以參考實(shí)現(xiàn)第三部分的內(nèi)容,不止是我寫的這篇文章。
2、數(shù)據(jù)連接建立
參考//blog.csdn.net/jemlee2002/archive/2004/09/28/JJEM.aspx,這里有詳細(xì)的介紹數(shù)據(jù)庫(kù)的連接過(guò)程。
3、拷貝必要的jar文件到Web應(yīng)用的WEB-INF\lib目錄
每個(gè)Web應(yīng)用都會(huì)有WEB-INF目錄,但是lib是不一定有的,如果沒(méi)有就創(chuàng)建它,本文需要的jar庫(kù)文件有3個(gè):
jasperreports-0.5.3.jar :jasperreports執(zhí)行時(shí)需要的API
iTextAsian.jar :亞洲字符集支持
itext-1.02b.jar :其他字符集支持
如果你的報(bào)表全英文或是不需要支持亞洲字符集,那么iTextAsian.jar、可以不要。
4、創(chuàng)建repotrs目錄并導(dǎo)入.jasper文件
在Web應(yīng)用中根目錄下創(chuàng)建repotrs目錄,其實(shí)這是一種建議,沒(méi)有必要完全按照這樣做,你可以根據(jù)你的業(yè)務(wù)需要?jiǎng)?chuàng)建N個(gè)目錄或是層次目錄。
把.jasper文件拷貝到repotrs目錄下,比如例子中的BusinessRpt.jasper文件。
5、例子程序
Test.jsp文件的內(nèi)容:
<%@ 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"));
???? ?? //配置參數(shù),可以參考《第二部分:使用Jasperreport作為報(bào)表控件開發(fā)胖客戶端報(bào)表應(yīng)用》
????? ??// //blog.csdn.net/jemlee2002/archive/2004/10/08/JJem3.aspx
???? ?? //ProjectName就是iReport的變量$P{ProjectName}的名稱,
???? ?? //參考第一部分的5.6添加參數(shù)和使用參數(shù)
???? ?? //proname就是從界面上獲取的值。
Map parameters = new HashMap();
???? ?? parameters.put("ProjectName ", proname);
??????? // JasperRunManager是一個(gè)輸出控制管理類,下文會(huì)提及部分內(nèi)容
???? ?? JasperRunManager.runReportToHtmlFile(business_rpt.getPath(),parameters,conn);
?????? //如果創(chuàng)建報(bào)表成功,則轉(zhuǎn)向該報(bào)表,其實(shí)可以把報(bào)表套在框架內(nèi),這樣實(shí)現(xiàn)比較有意義的報(bào)表格式。
???? ?? response.sendRedirect("/reports/BusinessRpt.html");
?? }catch(Exception ex){
?????? out.print("出現(xiàn)例外,信息是:"+ex.getMessage());
?????? ex.printStackTrace();
?? }
%>
</head>
<body>
</body>
</html>
6、關(guān)于JasperRunManager
JasperRunManager有很多的靜態(tài)方法,控制輸出的格式,比如輸出格式是pdf或是html等,建議瀏覽JasperRunManager的一些方法,這樣對(duì)開發(fā)報(bào)表輸出有幫助。
7、輸出內(nèi)容
例子中輸出格式是以HTML文件格式,所以web服務(wù)器可以直接解釋并顯示,效果不錯(cuò)。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載