Tom-隨筆
jasperreport可以用Collection做為數(shù)據(jù)源,這種方式比用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做為數(shù)據(jù)源,這種方式比用Connection方式更為靈活方便
posted on 2006-11-28 22:40
Tom
閱讀(351)
評論(0)
編輯
收藏
所屬分類:
報表工具
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
JAVA操作excel
iReport & JasperReport配置及用戶簡明手冊
jasperreport可以用Collection做為數(shù)據(jù)源,這種方式比用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
導(dǎo)航
BlogJava
首頁
新隨筆
聯(lián)系
聚合
管理
統(tǒng)計
隨筆 - 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: 一個關(guān)于StringBuilder與StringBuffer性能的小試驗 [未登錄]
@dreamstone
多線程還比什么,一個是線程安全的,一個是非線程安全的,沒有可比性
--icanfly
2.?re: 一個關(guān)于StringBuilder與StringBuffer性能的小試驗 [未登錄]
而且并不是多線程下一定要用stringBuffer
多線程下并不一定要同步的。比如只讀的情況,或不是公共資源的情況。
--abc
3.?re: 一個關(guān)于StringBuilder與StringBuffer性能的小試驗
都是牛人啊
--路人甲
4.?re: 熱烈慶祝CVSNT架設(shè)成功!呵呵[未登錄]
評論內(nèi)容較長,點擊標(biāo)題查看
--aaaa
5.?re: appfuse 亂碼問題[未登錄]
解決這類問題,這些方法都太麻煩。
最方便的辦法是用propertiesEditor編輯properties配置文件。
一個eclipse的插件。
--YeSoon
閱讀排行榜
1.?appfuse 亂碼問題(3514)
2.?Tomcat JSP調(diào)用JBoss布署的EJB遠(yuǎn)程方法(2346)
3.?一個關(guān)于StringBuilder與StringBuffer性能的小試驗 (2303)
4.?熱烈慶祝CVSNT架設(shè)成功!呵呵(2128)
5.?ORACLE查詢樹型關(guān)系(2086)
評論排行榜
1.?一個關(guān)于StringBuilder與StringBuffer性能的小試驗 (5)
2.?扼腕嘆息者,華為之倏然興衰也(3)
3.?中國之怪現(xiàn)狀-----"黨紀(jì)、行政處分"(2)
4.?appfuse 亂碼問題(2)
5.?熱烈慶祝CVSNT架設(shè)成功!呵呵(2)
主站蜘蛛池模板:
武城县
|
汨罗市
|
平谷区
|
天水市
|
阳城县
|
定安县
|
九江县
|
四会市
|
清流县
|
新乡县
|
阳西县
|
华蓥市
|
长沙市
|
冕宁县
|
微山县
|
南皮县
|
博客
|
中西区
|
拉萨市
|
仁化县
|
新余市
|
合作市
|
平乐县
|
阿拉尔市
|
林周县
|
呼伦贝尔市
|
仙居县
|
秦皇岛市
|
临沧市
|
承德县
|
开封市
|
手游
|
门源
|
安丘市
|
黄大仙区
|
孟村
|
大城县
|
临夏市
|
吴堡县
|
横山县
|
康马县
|