Tom-隨筆
jasperreport可以用Collection做為數據源,這種方式比用Connection方式更為靈活方便
?
<%
@?page?contentType
=
"
text/html;charset=GBK
"
?
%>
<%
@?page?import
=
"
dori.jasper.engine.*
"
?
%>
<%
@?page?import
=
"
java.util.*
"
?
%>
<%
@?page?import
=
"
java.io.*
"
?
%>
<%
@?page?import
=
"
java.sql.*
"
?
%>
<%
@?page?import
=
"
com.zx.report.util.CarUse
"
%>
<%
@?page?import
=
"
dori.jasper.engine.data.*
"
?
%>
<%
Connection?conn?
=
?
null
;
Statement?st?
=
?
null
;
ResultSet?rs?
=
?
null
;
byte
[]?bytes?
=
?
null
;
List?carUseList
=
new
?ArrayList();
try
{
Class.forName(
"
com.microsoft.jdbc.sqlserver.SQLServerDriver
"
);
conn?
=
DriverManager.getConnection(
"
jdbc:microsoft:sqlserver://10.10.10.207:1433;DatabaseName=report;user=sa;password=111111
"
);
//
以輸入流方式
???InputStream?reportFile?
=
?getClass().getClassLoader().getResourceAsStream(
"
carUserBd.jasper
"
);
//
以reportFile方式
//
File?reportFile?=new?File(request.getRealPath("/report/carUserBd.jasper"));
Map?parameters?
=
?
new
?HashMap();
String?sqlCarUser
=
"
SELECT?car.carNo,?dept.Name?,?people.peopleName,carUse.useDescription?,
"
?
+
"
?carUse.beginTime?,?carUse.planEndTime?,?carUse.comment?,?carUse.driver,
"
?
+
"
?carUse.peopleNumber?,OneWay=?case?carUse.isOneWay??when?0?then?'雙程'??else?'單程'??end,?
"
?
+
"
isFirst=?case?carUse.priority?when?0??then?'低'?when??1??then??'中'??else??'高'??end,?carUse.start?,?
"
?
+
"
carUse.destination?,?people.peopleName?as?ratifier?FROM?DEPT_CARUSELOG?carUse?,?DEPT_CARINFO?car?,?
"
?
+
"
ADMIN_ORGANIZATION?dept?,?PUBLIC_PEOPLEINFO?people?WHERE?carUse.id=290?and?
"
?
+
"
caruse.carId=car.carId?and?carUse.departId=dept.id?and?carUse.peopleId=people.peopleId
"
;
st?
=
?conn.createStatement();
rs?
=
?st.executeQuery(sqlCarUser);
while
(rs.next())
{
CarUse?carUse
=
new
?CarUse();
carUse.setCarNo(rs.getString(
1
));
carUse.setName(rs.getString(
2
));
carUse.setPeopleName(rs.getString(
3
));
carUse.setUseDescription(rs.getString(
4
));
carUse.setBeginTime(rs.getDate(
5
));
carUse.setPlanEndTime(rs.getDate(
6
));
carUse.setComment(rs.getString(
7
));
carUse.setDriver(rs.getString(
8
));
carUse.setPeopleNumber(rs.getString(
9
));
carUse.setOneWay(rs.getString(
10
));
carUse.setIsFirst(rs.getString(
11
));
carUse.setStart(rs.getString(
12
));
carUse.setDestination(rs.getString(
13
));
carUse.setRatifier(rs.getString(
14
));
carUseList.add(carUse);
}
JRBeanCollectionDataSource?ds?
=
?
new
?JRBeanCollectionDataSource(carUseList);
bytes?
=
JasperRunManager.runReportToPdf(
reportFile,
parameters,
ds);
String?fileName?
=
?
"
test.pdf
"
;
response.setContentType(
"
application/pdf
"
);
response.addHeader(
"
Content-Disposition
"
,
"
attachment;filename=\
""
?+?fileName);
response.setContentLength(bytes.length);
ServletOutputStream?ouputStream?
=
?response.getOutputStream();
System.
out
.println(
"
5
"
);
ouputStream.write(bytes,?
0
,?bytes.length);
ouputStream.flush();
ouputStream.close();
}
?
catch
?(SQLException?sqle)?
{
System.
out
.println(
"
SQLException:
"
?
+
?sqle.getMessage());
}
?
catch
?(JRException?e)?
{
e.printStackTrace();
}
catch
(ClassNotFoundException?cnfe)
{
}
%>
jasperreport可以用Collection做為數據源,這種方式比用Connection方式更為靈活方便
posted on 2006-11-28 22:40
Tom
閱讀(352)
評論(0)
編輯
收藏
所屬分類:
報表工具
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
相關文章:
JAVA操作excel
iReport & JasperReport配置及用戶簡明手冊
jasperreport可以用Collection做為數據源,這種方式比用Connection方式更為靈活方便
ireport+jasperreports 探索
Powered by:
BlogJava
Copyright © Tom
<
2006年11月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
導航
BlogJava
首頁
新隨筆
聯系
聚合
管理
統計
隨筆 - 43
文章 - 0
評論 - 17
引用 - 0
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆分類
(42)
Appfuse(3)
(rss)
Asp(1)
(rss)
CVS(2)
(rss)
DB(5)
(rss)
Develop IDE(1)
(rss)
EJB(1)
(rss)
Java(10)
(rss)
JavaScript(5)
(rss)
Spring(2)
(rss)
個人隨筆(8)
(rss)
報表工具(4)
(rss)
隨筆檔案
(43)
2007年12月 (1)
2007年11月 (3)
2007年9月 (1)
2007年8月 (1)
2007年7月 (2)
2007年2月 (4)
2007年1月 (11)
2006年12月 (8)
2006年11月 (12)
文章分類
Java
(rss)
相冊
Photo in ShangHai
搜索
最新評論
1.?re: 一個關于StringBuilder與StringBuffer性能的小試驗 [未登錄]
@dreamstone
多線程還比什么,一個是線程安全的,一個是非線程安全的,沒有可比性
--icanfly
2.?re: 一個關于StringBuilder與StringBuffer性能的小試驗 [未登錄]
而且并不是多線程下一定要用stringBuffer
多線程下并不一定要同步的。比如只讀的情況,或不是公共資源的情況。
--abc
3.?re: 一個關于StringBuilder與StringBuffer性能的小試驗
都是牛人啊
--路人甲
4.?re: 熱烈慶祝CVSNT架設成功!呵呵[未登錄]
評論內容較長,點擊標題查看
--aaaa
5.?re: appfuse 亂碼問題[未登錄]
解決這類問題,這些方法都太麻煩。
最方便的辦法是用propertiesEditor編輯properties配置文件。
一個eclipse的插件。
--YeSoon
閱讀排行榜
1.?appfuse 亂碼問題(3515)
2.?Tomcat JSP調用JBoss布署的EJB遠程方法(2347)
3.?一個關于StringBuilder與StringBuffer性能的小試驗 (2303)
4.?熱烈慶祝CVSNT架設成功!呵呵(2129)
5.?ORACLE查詢樹型關系(2086)
評論排行榜
1.?一個關于StringBuilder與StringBuffer性能的小試驗 (5)
2.?扼腕嘆息者,華為之倏然興衰也(3)
3.?中國之怪現狀-----"黨紀、行政處分"(2)
4.?appfuse 亂碼問題(2)
5.?熱烈慶祝CVSNT架設成功!呵呵(2)
主站蜘蛛池模板:
疏附县
|
马关县
|
孟津县
|
福贡县
|
格尔木市
|
盈江县
|
四川省
|
大埔区
|
蒲江县
|
天水市
|
朝阳县
|
霍邱县
|
沈丘县
|
高安市
|
炎陵县
|
利辛县
|
宿州市
|
突泉县
|
乌海市
|
融水
|
边坝县
|
南溪县
|
宜宾县
|
东宁县
|
岐山县
|
嘉善县
|
皮山县
|
双流县
|
大连市
|
宜宾市
|
逊克县
|
郧西县
|
大姚县
|
伊金霍洛旗
|
甘肃省
|
天镇县
|
辽阳市
|
永嘉县
|
马龙县
|
河池市
|
鲁山县
|