锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
鍏充簬iReport鍜孞asperReport鐨勭畝鏄庢墜鍐?/p>
By Gem 浼嶅瓙杞?/p>
JasperReport鐨勫紑鍙戠幆澧冨繀欏昏瀵煎叆浠ヤ笅鎵鏈夊寘錛?/p> 1錛幝?JasperReport鍖咃紝濡?font size="+0">jasperreports-0.6.1.jar錛?/p> 2錛幝?Aparche Common鍖咃紝鍖呮嫭logging銆?font size="+0">digester銆?font size="+0">beanutils銆?font size="+0">collections銆?font size="+0">logging-api錛?/p> 3錛幝?iText鍖咃紝鍖呮嫭itext-1.1.jar鍜?font size="+0">iTextAsian.jar錛堢敤浜庤緭鍑轟腑鏂囧瓧絎﹀埌PDF鏂囦歡錛?/p> 浠ヤ笂鎵鏈夊寘錛堥櫎浜?font size="+0">iTextAsian.jar錛夐兘宸茬粡鍖呭惈鍦?font size="+0">iReport\lib鐩綍涓嬨?/p> 鐢?font size="+0">iReport jrxml鏂囦歡閫氳繃Jasper緙栬瘧涔嬪悗灝卞彉鎴愪簡jasper鏂囦歡錛岃繖浠芥枃浠舵墠鏄湡姝e湪紼嬪簭涓皟鐢ㄧ敓鎴愭姤琛ㄧ殑report鏂囦歡銆?/p> 浣嗘槸鏈変竴鐐硅娉ㄦ剰鐨勬槸錛?font size="+0">jasper鐨勫悇涓増鏈紪璇戝嚭鏉ョ殑jasper鏂囦歡騫朵笉鍏煎錛屽氨鏄鐢?font size="+0">0.6.1鐗堢紪璇戝嚭鏉ョ殑鏂囦歡鐢?font size="+0">0.6.4鐗堣皟鐢ㄦ槸浼氬嚭閿欑殑錛岃?font size="+0">iReport鑷甫鐨?font size="+0">Jasper鐗堟湰鏄?font size="+0">0.6.1錛岃?font size="+0">jasper鐨勬渶鏂扮増鏈槸0.6.4銆傛墍浠ヤ負浜嗕繚鎸侀氱敤鎬э紝鎴戝緩璁彧鐢?font size="+0">iReport鏉ュ紑鍙戠紪杈?font size="+0">jrxml鏂囦歡錛岃屼笉緙栬瘧鎴?font size="+0">jasper鏂囦歡錛屽湪鎴戜滑鐨勬墦鍗版姤琛ㄧ▼搴忎腑鍐嶅嵆鏃剁紪璇戜竴嬈°傝櫧鐒惰繖鏍鋒晥鐜囧彲鑳戒細浣庝簡涓鐐癸紝浣嗘槸淇濊瘉浜嗕笉鍚岀増鏈殑鍏煎鎬с?/p> 鍦ㄦ垜浠殑紼嬪簭涓紝瑕佽皟鐢?font size="+0">Jasper鐨勮瘽錛岄鍏堣寰楀埌涓涓暟鎹簱鐨?font size="+0">Connection錛屽艦濡傦細Connection con = ... 闇瑕佸線JasperReport浼犲弬鏁扮殑璇濆彧闇瑕佹柊寤轟竴涓?font size="+0">Map錛屼互鍙傛暟鍚嶄綔涓?font size="+0">key錛岄渶瑕佷紶鍏ョ殑瀵硅薄浣滀負value錛岃濡傦細 Map props = new HashMap(); 聽聽聽聽聽 props.put("name", new String("name")); 闇瑕佸涓弬鏁板彧闇鍒嗗埆put榪?font size="+0">Map閲屽幓灝卞彲浠ヤ簡銆?/p> JasperReport鏈夊涓嬪嚑涓富瑕佺殑Manager錛?/p> 灝?font size="+0">jrxml鏂囦歡緙栬瘧鎴?font size="+0">jasper鏂囦歡鎴?font size="+0">JasperReport瀵硅薄 浠庢暟鎹簮涓幏鍙栨暟鎹茍濉厖jasper鏂囦歡鎴?font size="+0">JasperReport瀵硅薄錛屼駭鐢?font size="+0">JasperPrint瀵硅薄 灝?font size="+0">JasperPrint瀵硅薄鐩存帴杈撳嚭鍒版墦鍗版満鎵撳嵃 灝?font size="+0">JasperPrint瀵硅薄瀵煎嚭鎴?font size="+0">PDF鎴?font size="+0">HTML鏂囦歡錛堟垨嫻侊級 榪愯涓涓?font size="+0">jasper鏂囦歡鎴?font size="+0">JasperReport瀵硅薄騫惰緭鍑哄埌PDF鎴?font size="+0">Html鏂囦歡錛堟垨嫻侊級涓紝鎴戠殑鐞嗚В鏄瓑浜庨泦鎴愪簡JasperFillManager鍜?strong>JasperExportManager鐨勫姛鑳?/p> 瀵逛簬涓婅堪瀵硅薄鐨勮緇嗚鏄庤鍙傞槄JasperReport鐨勬枃妗c?/p> 渚嬬▼錛?/p>渚嬬▼錛?
public static void main(String[] args) { 聽聽聽 try { 聽聽聽聽聽 Class.forName("org.gjt.mm.mysql.Driver"); 聽聽聽聽聽 Connection con = DriverManager.getConnection( 聽聽聽聽聽聽聽聽聽 "jdbc:mysql://wes:3306/umpdb?useUnicode=true&characterEncoding=GBK", "root", "elite"); 聽聽聽聽聽 File f1 = new File("Account.jrxml"); 聽聽聽聽聽 File f2 = new File("Contact.jrxml"); 聽聽聽聽聽 JasperReport main = JasperCompileManager.compileReport(f1 聽聽聽聽聽聽聽聽聽 .getAbsolutePath()); 聽聽聽聽聽 JasperReport report = JasperCompileManager.compileReport(f2 聽聽聽聽聽聽聽聽聽 .getAbsolutePath()); 聽聽聽聽聽 Map props = new HashMap(); 聽聽聽聽聽 props.put("subreport", report); 聽聽聽聽聽 JasperPrint print = JasperFillManager.fillReport(main, props,con); 聽聽聽聽聽 //JasperPrintManager.printReport(print,true); 聽聽聽聽聽 JasperExportManager.exportReportToPdfFile(print, "a.pdf"); 聽聽聽聽聽 //JasperRunManager.runReportToPdfFile("Account.jasper", "a.pdf", props, con); 聽聽聽 } catch (ClassNotFoundException e) { 聽聽聽聽聽 // TODO 鑷姩鐢熸垚 catch 鍧?/p> 聽聽聽聽聽 e.printStackTrace(); 聽聽聽 } catch (SQLException e) { 聽聽聽聽聽 // TODO 鑷姩鐢熸垚 catch 鍧?/p> 聽聽聽聽聽 e.printStackTrace(); 聽聽聽 } catch (JRException e) { 聽聽聽聽聽 // TODO 鑷姩鐢熸垚 catch 鍧?/p> 聽聽聽聽聽 e.printStackTrace(); 聽聽聽 } 聽 } 1錛?font size="+0">iReport 2錛?font size="+0">iReport 3錛庣敤Report SQL鏌ヨ涔嬪悗錛屽彲鑳戒細鍑虹幇鏌愪簺瀛楁娌℃湁鑷姩寤虹珛Field錛屽氨闇瑕佸湪Field涓墜鍔ㄥ畾涔変簡銆?/p>
package
聽com.eesys.apps.logic;
聽2
聽3
import
聽java.io.File;
聽4
import
聽java.io.FileInputStream;
聽5
import
聽java.io.InputStream;
聽6
聽7
import
聽jxl.Cell;
聽8
import
聽jxl.CellType;
聽9
import
聽jxl.Sheet;
10
import
聽jxl.Workbook;
11
import
聽jxl.write.Label;
12
13
public
聽
class
聽PrintManager聽
{
14
聽聽聽聽
15
聽聽聽聽聽聽
public
聽
static
聽
void
聽main(String[]聽args)聽
{
16
聽聽聽聽聽聽聽聽jxl.Workbook聽rwb聽
=
聽
null
;
17
聽聽聽聽聽聽聽聽
try
{
18
聽聽聽聽聽聽聽聽聽聽
//
鏋勫緩Workbook瀵硅薄,聽鍙Workbook瀵硅薄
19
聽聽聽聽聽聽聽聽聽聽
//
鐩存帴浠庢湰鍦版枃浠跺垱寤篧orkbook
20
聽聽聽聽聽聽聽聽聽聽
//
浠庤緭鍏ユ祦鍒涘緩Workbook
21
聽聽聽聽聽聽聽聽聽聽聽聽System.out.println(
"
********START!*******
"
);
22
聽聽聽聽聽聽聽聽聽聽InputStream聽is聽
=
聽
new
聽FileInputStream(
"
D:/test.xls
"
);
23
聽聽聽聽聽聽聽聽聽聽rwb聽
=
聽Workbook.getWorkbook(is);
24
25
聽聽聽聽聽聽聽聽聽聽
//
Sheet(鏈錛氬伐浣滆〃)灝辨槸Excel琛ㄦ牸宸︿笅瑙掔殑Sheet1,Sheet2,Sheet3浣嗗湪紼嬪簭涓?br />
26
聽聽聽聽聽聽聽聽聽聽
//
Sheet鐨勪笅鏍囨槸浠?寮濮?br />
27
聽聽聽聽聽聽聽聽聽聽
//
鑾峰彇絎竴寮燬heet琛?/span>
28
聽聽聽聽聽聽聽聽聽聽聽Sheet聽rs聽
=
聽rwb.getSheet(
0
);
29
聽聽聽聽聽聽聽聽聽聽聽
//
鑾峰彇Sheet琛ㄤ腑鎵鍖呭惈鐨勬誨垪鏁?/span>
30
聽聽聽聽聽聽聽聽聽聽聽
int
聽rsColumns聽
=
聽rs.getColumns();
31
聽聽聽聽聽聽聽聽聽聽聽
//
鑾峰彇Sheet琛ㄤ腑鎵鍖呭惈鐨勬昏鏁?/span>
32
聽聽聽聽聽聽聽聽聽聽聽
int
聽rsRows聽
=
聽rs.getRows();
33
聽聽聽聽聽聽聽聽聽聽聽
//
鑾峰彇鎸囧畾鍗曞厓鏍肩殑瀵硅薄寮曠敤
34
聽聽聽聽聽聽聽聽聽聽聽
for
(
int
聽i
=
0
;i
<
rsRows;i
++
)
{
35
聽聽聽聽聽聽聽聽聽聽聽聽聽
for
(
int
聽j
=
0
;j
<
rsColumns;j
++
)
{
36
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽Cell聽cell聽
=
聽rs.getCell(j,i);
37
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽System.out.print(cell.getContents()
+
"
聽
"
);
38
聽聽聽聽聽聽聽聽聽聽聽聽聽}
39
聽聽聽聽聽聽聽聽聽聽聽聽聽System.out.println();
40
聽聽聽聽聽聽聽聽聽聽聽}
41
聽聽聽聽聽聽聽聽聽聽聽
//
鍒╃敤宸茬粡鍒涘緩鐨凟xcel宸ヤ綔钖勫垱寤烘柊鐨勫彲鍐欏叆鐨凟xcel宸ヤ綔钖?/span>
42
聽聽聽聽聽聽聽聽聽聽聽jxl.write.WritableWorkbook聽wwb聽
=
聽Workbook.createWorkbook(
new
聽File(
"
D:/Book2.xls
"
),rwb);
43
聽聽聽聽聽聽聽聽聽聽聽
//
璇誨彇絎竴寮犲伐浣滆〃
44
聽聽聽聽聽聽聽聽聽聽聽
45
聽聽聽聽聽聽聽聽聽聽聽jxl.write.WritableSheet聽ws聽
=
聽wwb.getSheet(
0
);
46
聽聽聽聽聽聽聽聽聽聽聽
47
聽聽聽聽聽聽聽聽聽聽聽
48
聽聽聽聽聽聽聽聽聽聽聽
//
鑾峰緱絎竴涓崟鍏冩牸瀵硅薄
49
聽聽聽聽聽聽聽聽聽聽聽jxl.write.WritableCell聽wc聽
=
聽ws.getWritableCell(
0
,聽
0
);
50
聽聽聽聽聽聽聽聽聽聽聽
//
鍒ゆ柇鍗曞厓鏍肩殑綾誨瀷,聽鍋氬嚭鐩稿簲鐨勮漿鍖?/span>
51
聽聽聽聽聽聽聽聽聽聽聽
if
聽(wc.getType()聽
==
聽CellType.LABEL)聽
{
52
聽聽聽聽聽聽聽聽聽聽聽聽聽Label聽l聽
=
聽(Label)聽wc;
53
聽聽聽聽聽聽聽聽聽聽聽聽聽l.setString(
"
The聽value聽has聽been聽modified.
"
);
54
聽聽聽聽聽聽聽聽聽聽聽}
55
聽聽聽聽聽聽聽聽聽聽聽
//
鍐欏叆Excel瀵硅薄
56
聽聽聽聽聽聽聽聽聽聽聽wwb.write();
57
聽聽聽聽聽聽聽聽聽聽聽wwb.close();
58
聽聽聽聽聽聽聽聽聽聽聽System.out.println(
"
********END!*******
"
);
59
60
聽聽聽聽聽聽聽聽}
catch
(Exception聽e)
{
61
聽聽聽聽聽聽聽聽聽聽e.printStackTrace();
62
聽聽聽聽聽聽聽聽}
63
聽聽聽聽聽聽聽聽
finally
{
64
聽聽聽聽聽聽聽聽聽聽
//
鎿嶄綔瀹屾垚鏃訛紝鍏抽棴瀵硅薄錛岄噴鏀懼崰鐢ㄧ殑鍐呭瓨絀洪棿
65
聽聽聽聽聽聽聽聽聽聽rwb.close();
66
67
聽聽聽聽聽聽聽聽}
68
聽聽聽聽聽聽}
69
聽聽聽聽}
70
JSP 鏂囦歡<%@聽page聽contentType="text/html;聽charset=GBK"聽%>
聽2<%@聽page聽import="java.io.File"聽%>
聽3<%@聽page聽import="java.io.FileInputStream"聽%>
聽4<%@聽page聽import="java.io.FileOutputStream"聽%>
聽5<%@聽page聽import="jxl.write.WritableSheet"聽%>
聽6<%@聽page聽import="java.io.InputStream"聽%>
聽7
聽8<%
聽9response.reset();//娓呴櫎Buffer
10response.setContentType("application/vnd.ms-excel");
11File聽fileWrite聽=聽new聽File("d:/test.xls");
12response.setContentLength((int)聽fileWrite.length());聽
13InputStream聽in=new聽FileInputStream(fileWrite);
14byte[]聽b聽=聽new聽byte[2048];
15int聽len聽=聽0;
16while聽((len聽=聽in.read(b))聽>聽0)聽
{
17聽聽聽聽response.getOutputStream().write(b,聽0,聽len);聽//聽鍚戞祻瑙堝櫒杈撳嚭
18聽聽聽}
19in.close();
20response.getOutputStream().close();
21
22%>
]]>
1瀹夎
1.1 iReport鐨勫畨瑁?/h2>
iReport鐩存帴瑙e帇鍚庯紝灝?font size="+0">J2SDK\lib
鐩綍涓嬬殑tools.jar鎷瘋礉鍒?font size="+0">iReport\lib鐩綍涓嬶紝鐒跺悗鍦?font size="+0">iReport鐩綍涓嬭繍琛?font size="+0">iReport.bat鍗沖彲銆?br />闇瑕佹敞鎰忕殑鏄?font size="+0">tools.jar鐨勭増鏈繀欏昏涓庢湰鏈哄畨瑁呯殑jre涓鑷達紝涔熷氨鏄錛屽鏋滅郴緇熷畨瑁呯殑鏄?font size="+0">jre1.4.2灝卞繀欏葷敤jdk1.4.2鐨?font size="+0">tools.jar銆?br />1.2 JapserReport寮鍙戯紙榪愯錛夌幆澧冪殑鎼緩
2 寮鍙戞祦紼?/h1>
JasperCompileManager JasperFillManager JasperPrintManager JasperExportManager JasperRunManager 3 娉ㄦ剰浜嬮」
<%
@聽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
"
);
//
浠eportFile鏂瑰紡
//
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鍙互鐢–ollection鍋氫負鏁版嵁婧愶紝榪欑鏂瑰紡姣旂敤Connection鏂瑰紡鏇翠負鐏墊椿鏂逛究
]]>
涓嬮潰灝辨妸鎴戣繖鍑犲ぉ鍋氱殑涓浜涗笢瑗胯褰曚笅鏉ヂ仿仿仿?br />鍏朵腑鎻愬嚭涓浜涚壒鍒娉ㄦ剰鐨勫湴鏂癸紙鎴戝氨鏄湪閭e嚑涓湴鏂規氮璐逛簡浜涙椂闂達級路路路
1銆佸厛浠嬬粛涓涓媔report鍙奱sperreports鍚仿仿仿?br />Jasperreport鏄竴涓姤琛ㄥ埗浣滅▼搴忥紝鐢ㄦ埛闇瑕佹寜鐓у畠鍒跺畾鐨勮鍒欑紪鍐欎竴涓猉ML鏂囦歡錛?br />鐒跺悗寰楀埌鐢ㄦ埛闇瑕佽緭鍑虹殑鏍煎紡鏂囦歡銆傚畠鏀寔杈撳嚭鐨勬枃浠舵牸寮忓寘鎷琍DF,HTML,XML,XLS,CVS絳夌瓑銆?br />鑰宨Report灝辨槸涓涓埗浣淛asperreport鐨刋ML鏂囦歡鐨勫彲瑙嗗寲寮鍙戝伐鍏楓?/font>
2銆佷笅杞絠report鍜宩asperreports路路路
jasperreport涓嬭澆鍦板潃錛氾紙鎴戜笅鐨勬槸jasperreports-0.6.8錛?/font>
http://jasperreports.sourceforge.net
ireport涓嬭澆鍦板潃錛氾紙鎴戜笅鐨勬槸iReport0.5.0錛?/font>
http://ireport.sourceforge.net
3銆佷笅杞戒簡ireport灝嗗畠瑙e帇緙╀互鍚庤繍琛宨Report.bat鏂囦歡錛岃繃澶х害30縐掑鏋滆兘鍑虹幇ireport鐨勪富紿椾綋
鍒欒〃鏄庝綘鐨勭郴緇熷凡緇忓彲浠ヨ繍琛宨report浜嗭紝浣嗘槸鎴戠殑涓嶈錛屾墍浠ユ垜緙栬緫鐩綍涓嬬殑iReport.bat鏂囦歡錛?br />浠g爜濡備笅路路路路
@echo off
set JAVA_HOME=C:\j2sdk1.4.0_03
set ANT_HOME=C:\ant
set IREPORT_HOME=C:\Documenti\progetti\iReport\iReport2\
rem %ANT_HOME%\bin\ant javadocs
%ANT_HOME%\bin\ant iReport
----------------
榪欓噷鏄噰鐢╝nt鏉ヨ繍琛岀殑錛屾墍浠ヨ繕闇瑕佷笅杞戒竴涓猘nt路路路
濡傛灉浣犳病鏈夊畨瑁卆nt鐨勮瘽涔熷彲浠ユ壘鍒皀oAnt鏂囦歡澶逛笅鐨剆tartup.bat鏂囦歡鍗沖彲榪愯路路路
4銆佹暟鎹簱路路路
鎴戞槸鐢ㄧ殑mysql鏁版嵁搴擄紝涔嬪墠閰嶇疆鏁版嵁搴撶殑JDBC椹卞姩鍣ㄤ竴鐩翠笉鎴愬姛鍘熷洜鏄垜涓嬬殑mysql鐨刯dbc椹卞姩澶佷簡錛?br />鍜宨report鐨勪笉鍏煎路路路路
寤鴻鍒?/font>
http://dev.mysql.com/downloads/
涓嬭澆鏈鏂扮増鏈仿仿?/font>
5銆侀厤緗暟鎹簱榪炴帴路路路路
榪欎釜鏄姤琛ㄤ笌鏁版嵁搴撶殑鎺ュ彛錛岄氳繃<璧勬枡鏉ユ簮>--<榪炴帴/璧勬枡鏉ユ簮>寮鍚厤緗璇濇錛宨report浼氳褰曚互鍓嶄嬌鐢ㄧ殑
鎵鏈夎繛鎺ワ紝闄ら潪浣犳墜宸ュ垹闄よ繖浜涜繛鎺ワ紝鍚﹀垯榪炴帴灝嗕竴鐩村瓨鍦仿仿?br />閰嶇疆鏂拌繛鎺ョ晫闈㈠涓嬶細
聽
鎻愮ず錛氬鏋滀綘闇瑕佹姤琛ㄦ彁渚涗腑鏂囧唴瀹規樉紺哄彲浠ュ湪JDBC URL涓嬪伐澶紝姣斿杈撳叆錛?br />jdbc:mysql://localhost/xiaoya?user=root&password=root&useUnicode=true&characterEncoding=GB2312
6銆佷腑鏂囬棶棰樎仿仿仿?br />瑙e喅pdf涓枃闂闇瑕佷笅杞絠textasian.jar鍜宨text-1.3.jar錛屽皢鍏朵笅杞藉悗鏀懼埌ireport/lib涓嬪嵆鍙仿?br />瑕佸湪榪欓噷鎻愪竴涓嬬殑鏄箣鍓嶆垜涔熶笅杞戒簡榪欎袱涓笢涓滄斁鍒版寚瀹氱殑浣嶇疆浜嗗彲榪樻槸涔辯爜錛屽悗鏉ヨ繕鏄В鍐充簡路路
瑙e喅鏂規硶錛?br />鍦╥Report涓柊寤轟竴涓猅extField鐨勬椂鍊欎細鑷姩鎶妏df瀛椾綋璁句負CP1252錛岃繖涓槸闇瑕佷慨鏀圭殑錛?br />鍚﹀垯pdf杈撳嚭浼氭姤閿欒鎵句笉鍒板瓧浣擄紝鎴戝氨琚繖涓崋楗朵簡寰堜箙錛屼慨鏀瑰鍥撅細
7銆佺悊瑙e嚑涓噸瑕佺殑姒傚康路路路路
聽 a銆乮Report鐨勮緭鍑烘牸寮徛仿仿仿?br />聽聽聽 iReport鐨勯瑙堣緭鍑烘牸寮忓彲浠ユ敮鎸佷互涓嬪嚑縐嶏細
聽聽聽 PDF銆丠TML銆丆SV銆丣AVA2D銆丒xcel銆佺函鏂囧瓧銆丣RViewer錛屽叾涓渶甯哥敤鐨勬槸PDF銆丣RViewer銆?br />聽聽聽 鏈枃浠RViewer涓轟緥瀛愩侸RViewer鏄洿鎺ヤ互C/S鏂瑰紡浣滀負鎶ヨ〃鐨勮緭鍑烘牸寮忥紝鍦↗Frame妗嗘灦涓嬭緭鍑恒侸asperreport鎻愪緵榛樿鐨凧RViewer杈撳嚭綾匯?br />聽 b銆佹姤琛ㄧ殑鍔ㄦ佸璞″彉閲忋佸弬鏁般佸瓧孌德仿仿仿?br />聽聽聽 鍦ㄤ嬌鐢╥Report鐨勮繃紼嬩腑浼氱鍒板緢澶氫笌鍙橀噺錛圴ariables錛夈佸弬鏁幫紙Parameters錛夈佸瓧孌碉紙Fields錛夎繖浜涙湁鍏崇殑鍐呭錛屾垜浠浠嬬粛榪欎簺瀵硅薄鐨勪嬌鐢ㄥ拰鎰忎箟錛?br />聽聽 路瀛楁錛團ields錛夛細鏄暟鎹簱鎶藉彇鍑烘潵鐨勶紝甯屾湜鍦ㄦ姤琛ㄤ腑鍑虹幇鐨勬暟鎹簱鍐呭銆?br />聽聽聽聽 姣斿涓涓狪D鐨勬墍鏈夊箋?F{ filedsName }
聽聽 路鍙傛暟錛圥arameters錛夛細榪欐槸浣犵殑搴旂敤闇瑕佹彁渚涚粰鎶ヨ〃鐨勫叆鍙o紝
聽聽聽聽 姣斿浣犲笇鏈涘湪鎶ヨ〃琚В閲婄殑鏃跺欐彁渚沇here璇彞鐨勬潯浠跺鹼紝
聽聽聽聽 閭d箞灝卞彲浠ヤ嬌鐢ㄥ弬鏁幫紙Parameters錛夈?P{ parameterName }
聽聽 路鍙橀噺錛圴ariables錛夛細榪欐槸鎶ヨ〃涓竴浜涢昏緫榪愮畻鐨勮〃鐜幫紝姣斿緇熻鍊箋?V{ variablesName }
聽聽聽聽 姣忕瀵硅薄鐨勫畾涔夋牸寮忓姣忎釜瀵硅薄鐨勫悗闈㈣鏄庯紝姣斿瀹氫箟涓涓彉閲忥紙Variables錛夛紝
聽聽聽聽 閭d箞琛ㄨ揪寮忓氨鍐欐垚$V{ variablesName }錛屾姤琛ㄤ腑鍑虹幇鐨勫氨鏄繖涓彉閲忕殑鍚嶇О銆?br />聽聽 c銆佺紪璇戙侀潤鎬佽繍琛屻佸姩鎬佽繍琛屄仿仿?br />聽聽聽聽 Jasperreport榪愯鏃墮渶瑕佺殑灝辨槸涓涓猨asper鍚庣紑鐨勬枃浠訛紝緙栬瘧榪囩▼鍏跺疄灝辨槸鎶妀rxml鍚庣紑鐨勬枃浠剁敓鎴恓asper鍚庣紑鐨勬枃浠躲傦紙鍙互鍙傝僇asperreport鐨勮繍琛屽師鐞嗭級聽闈欐佽繍琛屽拰鍔ㄦ佽繍琛屾槸鐩稿鐨勶紝鍚庤呭甫鏁版嵁婧愯繍琛岋紝姣斿甯︽暟鎹簱榪愯銆傚墠鑰呭氨鏄潤鎬佹枃鏈繍琛岋紝鍜屾暟鎹簮鏃犲叧錛屽鏋滄姤琛ㄤ腑鍑虹幇鍜屾暟鎹簮鏈夊叧鐨勫璞★紝鍒欎互null鏄劇ず銆?br />聽聽 d銆佹姤琛ㄧ殑緇撴瀯路路路
聽聽聽聽聽聽 涓涓姤琛ㄧ殑緇撴瀯澶ц嚧鏄嚑涓儴鍒嗭細title銆乸ageHeader銆乧olumnHeader銆乨etial銆乧olumnFooter銆乸ageFooter銆乻ummary銆乬roupHeader銆乬roupfooter銆?br />聽聽聽聽 路Title錛氭瘡涓姤琛ㄤ竴鑸細鏈変竴涓悕瀛楋紝姣斿脳脳脳閿鍞姤琛紝title灝辨槸鎼佺疆榪欎釜鍚嶇О鐨勬渶濂藉湴鏂逛簡錛屽綋鐒朵綘涔熷彲浠ユ牴鎹渶瑕佹悂緗湪鍚堥傜殑鍦版柟銆?br />聽聽聽聽 路pageHeader錛氭姤琛ㄧ殑涓浜涘叕鍏辮绱狅紝姣斿欏電爜銆佸垱寤烘椂闂淬佸垱寤轟漢絳変俊鎭斁緗湪榪欓噷鏄瘮杈冨ソ鐨勯夋嫨銆?br />聽聽聽聽 路columnHeader錛氭棤鍙潪璁殑榪欓噷鏄斁緗垪鐨勫悕縐幫紝璁頒綇涓嶆槸鍒楁暟鎹?br />聽聽聽聽 路Detial錛氭斁緗渶瑕佸驚鐜殑鏁版嵁錛屾瘮濡傞攢鍞褰曟暟鎹?br />聽聽聽聽 路columnFooter錛氭斁緗垪綰у埆鐨勭粺璁¤綆楀兼垨鏄垪鐨勮鏄庛?br />聽聽聽聽 路pageFooter錛氭斁緗〉綰у埆鐨勭粺璁″兼垨鏄〉鐨勮鏄庛?br />聽聽聽聽 路Summary錛氬彲鑳介渶瑕佸鍑犻〉錛堜綘鐨勬姤琛ㄥ彲鑳芥湁鍑犱釜欏電粍鎴愶級鐨勭粺璁″箋傛瘮濡?0涓攢鍞褰曞叡鍗犵敤浜?欏碉紝閭d箞鏀劇疆榪欎簺緇熻璁板綍鐨勭粺璁″兼渶濂界殑鍦版柟灝辨槸summary銆?br />聽聽聽聽 路groupHeader錛氭瘡涓〃鐨勫唴瀹瑰彲鑳介渶瑕佹牴鎹煇涓睘鎬ц繘琛屽垝鍒嗘樉紺哄唴瀹瑰拰璁$畻鍐呭錛屾瘮濡傚笇鏈涗互鏈堜喚涓哄崟浣嶆瘡緇勫垎寮鏄劇ず閿鍞褰曪紝閭d箞灝卞彲浠ュ畾涔変竴涓粍錛堢粍鐨勫畾涔夊弬鑰冨悗鏂囷級錛実roupHeader灝辨槸鏀劇疆緇勮鏄庢垨鏄粍鏍囧織鏈濂界殑鍦版柟銆?
聽聽聽聽 路Groupfooter錛氭斁緗粍鐨勭粺璁℃垨鏄鏄?/font>
8銆佸緩绔嬩竴涓柊鐨勬姤琛仿仿仿仿?/font>
聽 a銆佹柊寤轟竴涓┖鎶ヨ〃鐨勫熀鏈厤緗?br />聽聽聽 鍗曞嚮宸ュ叿鏍忕殑絎竴涓伐鍏封淣ew Report鈥濓紝鏂板緩涓涓姤琛紝杈撳叆鎶ヨ〃鍚嶇О鍜屽畾涔夋姤琛ㄧ殑涓浜涘弬鏁幫紝姣斿鍚嶇О杈撳叆錛堜緥瀛愭槸鍋氫竴涓」鐩殑Bug閲忕粺璁℃姤琛級鍗曞嚮銆怣ore鈥?銆戦夋嫨鏍囩錛屽~鍐欐垨鏄夋嫨XML緙栫爜錛岃繖鏄叧緋誨埌浣犵殑XML鏀寔鐨勫瓧絎﹂泦鐨勯夋嫨錛岃鏍規嵁闇瑕侀夋嫨錛屾瘮濡傞渶瑕佷綘鐨刋ML鏂囦歡鏀寔涓枃錛岄偅涔堝彲浠ヨ緭鍏ユ垨鏄疓BK錛屼箣鍚庣偣鍑匯怬K銆戞寜閽紝榪涘叆鎶ヨ〃鐨勮璁$晫闈€?br />聽 b銆佸畾涔夋姤琛ㄥ彲鑳介渶瑕佺殑瀛椾綋綾誨瀷鍙婂叾灞炴?br />聽聽聽 涓涓姤琛ㄧ殑鍐呭浜旇姳鍏棬錛屾湁
聽聽聽 鎸夌収鍥句腑鐨勯『搴忓~鍐欎俊鎭拰姝ラ錛屼緷嬈″畾涔夆滆〃澶粹濄佲滅粍鈥濄佲滃垪鈥濄佲滃垪鍐呭鈥濄佲滅粺璁¤綆椻濄佲滃叾浠栤濈瓑6涓瓧浣撶粍鍚堛?br />聽聽聽 娉ㄦ剰PDF鍐呭祵瀛椾綋鐨勯夋嫨錛屽鏋滀綘闇瑕佹姤琛ㄦ椂浠DF鏂囦歡鏍煎紡鎻愪緵錛岄偅涔堝姝ら渶瑕佷綔鍑洪夋嫨銆?br />聽 9銆佸悜琛ㄦ坊鍔犲璞÷仿仿仿?br />聽 a銆佹坊鍔犻潤鎬佸璞÷仿仿?br />聽聽 鍙互閫氳繃宸ュ叿鏍忕殑宸ュ叿娣誨姞闈欐佸璞★紝姣斿鏂囨湰錛岀偣鍑匯怲銆戯紝涔嬪悗鍦ㄦ姤琛ㄧ殑絀虹櫧澶勫崟鍑伙紝濡傛鍗沖彲鎶婇潤鎬佸璞℃坊鍔犲埌鎶ヨ〃錛岀劧鍚庢嫋鍔ㄥ璞$殑杈規錛屼嬌瀹冪殑澶у皬鍚堥傦紝鍙屽嚮瀵硅薄寮瑰嚭瀵硅薄鐨勫睘鎬ч厤緗璇濇錛屽垏鎹㈠埌銆怓ont銆慙abel錛屽湪鈥淩eport font鈥濈殑ComBox閫夋嫨鈥滆〃澶粹濆瓧浣擄紝錛堣〃澶村瓧浣撴槸鍓嶆枃鎻愪緵鐨勮嚜瀹氫箟灞炴х粍鍚堬級錛屽啀鍒囨崲鍒般怱tatic Text銆慙abel錛屼慨鏀硅〃澶寸殑鍚嶅瓧錛屾瘮濡傗淏ug緇熻鎶ヨ〃鈥濇垨鏄滈攢鍞褰曠粺璁¤〃鈥濈瓑絳変笌涓氬姟鏈夊叧鐨勫唴瀹廣傛坊鍔犲浘鐗囷紝璇風偣鍑匯怚mage Tool銆戯紝涔嬪悗鐨勬搷浣滀笌Text綾諱技銆傚叾浠栭潤鎬佸璞℃搷浣滄楠ょ被浼箋?br />聽 b銆佷嬌鐢ㄨ繛鎺ヂ仿仿?br />聽聽聽 榪樿寰楀墠鏂囨彁渚涚殑錛?.2鑺傦級閰嶇疆MySql鏁版嵁搴撹繛鎺ュ悧錛熻繖閲屾垜浠皢瑕佷嬌鐢ㄥ墠鏂囬厤緗殑榪炴帴浜嗐傞夋嫨鑿滃崟銆愬緩绔嬨戯紞銆愪嬌鐢ㄥ姩鎬佽繛鎺ャ戝紑鍚彲閫夌殑鍔ㄦ佽繛鎺ワ紝聽閫夋嫨浠諱綍涓涓綘闇瑕佺殑榪炴帴鏈鍚庛怬K銆戯紝淇濆瓨鎶ヨ〃錛岃繖鏍蜂綘鐨勬姤琛ㄥ氨浣跨敤浜嗚繖涓繛鎺ヤ簡銆?br />聽聽 *銆愮壒鍒彁紺恒?/strong>姝よ繛鎺ュ繀欏諱笌浠ュ悗搴旂敤紼嬪簭浣跨敤鐨勮繛鎺ヤ竴鑷淬?br />聽 c銆佸垱寤篠QL鏌ヨ璇彞路路路路
聽聽聽 SQL璇彞鏄浠諱綍RDBMS璧蜂綔鐢ㄧ殑璇█錛屽閮ㄧ敤鎴烽渶瑕佷嬌鐢ㄨ繖浜涜璦綆$悊緇存姢鏁版嵁搴撲腑鐨勬暟鎹紝鍚屾牱鐨勶紝iReport涔熸槸闇瑕佽繖涔堝仛錛屾垜浠渶瑕佹彁渚涙煡璇㈡暟鎹簱鐨勮璦錛峉QL璇彞錛岃繖鏍鳳紝iReport鍗沖彲閫氳繃姝QL璇彞鑾峰彇鏁版嵁錛屼箣鍚庣粍緇囧埌鎶ヨ〃涓茍鏄劇ず鍑烘潵錛屼互婊¤凍鐢ㄦ埛鐨勯渶瑕佷負鐩殑銆?br />聽聽聽 閫氳繃鑿滃崟銆愯祫鏂欐潵婧愩戯紞銆愭姤琛ㄦ煡璇€戝紑鍚疭QL杈撳叆瀵硅瘽妗嗭紝騫跺湪銆怰eport SQL Query銆?Label涓緭鍏QL璇彞濡傚浘錛氬浘涓殑鈥淎utomatically Retrieve Fields鈥漜heckbox鍜屸淩eadFields鈥滲utton鏄‘璁よ嚜鍔ㄨ幏鍙栬繕鏄墜鍔ㄨ幏鍙栨暟鎹簱琛ㄧ殑鍙敤Fields銆傚崟鍑匯怬K銆戯紝淇濆瓨鎶ヨ〃銆?br />聽聽聽聽
d銆佸垱寤哄瓧孌靛姩鎬佸璞÷仿仿仿仿?br />聽聽聽 鎶ヨ〃鐨勫姩鎬佸璞℃湁鍙橀噺銆佸弬鏁般佸瓧孌碉紝鍓嶆枃鎻愬強浜嗕粬浠殑姒傚康錛岃繖閲屽皢瑕佷竴涓璁茶В濡備綍浣跨敤銆傚瓧孌典篃灝辨槸鏁版嵁搴撲腑鐨勫瓧孌碉紝閫氳繃鑿滃崟銆愰瑙堛戯紞銆愭姤琛ㄥ瓧孌點戝紑鍚瓧孌電殑鍒楄〃錛堝伐鍏鋒潯涓婂彲浠ユ壘鍒扮浉搴旂殑宸ュ叿錛夛紝鍙互鎷栨斁浠繪剰瀛楁鍒版姤琛ㄧ殑浠諱綍浣嶇疆錛屾瘮濡傛嫋鍔ㄤ竴閮ㄥ垎Bug鐨勫唴瀹瑰瓧孌靛埌detial孌碉紙鍐呭鏃犲叧绱ц錛屽彧瑕佺煡閬撳師鐞嗭級銆?br />聽 e銆佸垱寤虹粍路路路
聽聽聽聽 緇勬槸涓涓緢閲嶈鐨勬蹇碉紝涓涓姤琛ㄥ彲浠ュ涓粍錛屾瘡涓粍浠ヤ竴涓叧閿瓧涓烘爣璁幫紝姣斿甯屾湜Bug緇熻鏄牴鎹」鐩紙鎴栨槸浜у搧錛夎繘琛岀粺璁$殑銆傞偅涔堝彲浠ヨ绔嬩竴涓」鐩爣璁扮殑緇勩傚鍥撅細
聽
聽聽聽 聽聽聽
緇勭殑鍙傛暟璁懼畾鍙互鐪嬬晫闈㈠嵆鍙悊瑙i儴鍒嗭紝鍏朵腑鏈涓昏鐨勬槸鈥淕roup expression鈥濓紝榪欐槸蹇呴』杈撳叆鏍煎紡姝g‘鐨勫茍涓斿瓨鍦ㄧ殑瀛楁鍚嶇О錛屾湰鏂囩殑鈥減roname鈥濇槸銆愬瓧孌點戜腑鐨勪竴涓厓绱犮備緷姝ょ被鎺紝寤虹珛鍏朵粬鐨勭粍瀵硅薄銆?br />聽聽聽 姣忓緩绔嬩竴涓粍錛屽湪鎶ヨ〃鐨勭晫闈笂閮戒細鍑虹幇璇ョ粍瀵瑰簲鐨勬錛屽鍥撅細浠栦滑鏄灝懼搴斿嚭鐜扮殑銆傦紙Header鍜孎ooter錛?br />聽聽聽
聽
聽 f銆佹坊鍔犲弬鏁板拰浣跨敤鍙傛暟路路路路
聽聽聽 鎴戜滑閲嶇敵鍙傛暟浣滅敤錛屼竴鑸槸闇瑕佸鐣屾彁渚涘弬鏁扮粰鎶ヨ〃鐨勫叆鍙o紝姣斿SQL璇彞鐨剋here鏉′歡鐨勮〃杈懼紡銆傞氳繃銆愰瑙堛戯紞銆愭姤琛ㄥ弬鏁般戝紑鍚姤琛ㄥ弬鏁板垪琛ㄥ璇濇錛堝伐鍏鋒潯涓婂彲浠ユ壘鍒扮浉搴旂殑宸ュ叿錛夈傚鍥撅細杈撳叆鍚嶇О鍙婂叾浠栧弬鏁般傘恛k銆?淇濆瓨鎶ヨ〃銆?br />聽聽聽 聽聽聽 閭d箞濡備綍浣跨敤鍛紵鎵撳紑SQL璇彞瀵硅瘽妗嗭紝鍙傝冣?.3鍒涘緩SQL鏌ヨ璇彞鈥濓紝榪欐椂鍊欑殑SQL璇彞搴旇鏄細SELECT * FROM bugs聽 where proname=$P{ProjectName} order by proname,modulename
聽聽聽 娉ㄦ剰鍏朵腑鐨勭孩浣撳瓧閮ㄥ垎錛屽氨鏄妸鍒氭墠瀹氫箟鐨?nobr>鍙橀噺榪愮敤鍒癝QL璇彞浜嗐傝繖鏍峰綋搴旂敤鎻愪緵鍙傛暟鏃訛紝鍙鎸囧畾鎻愪緵緇欒繖涓弬鏁幫紝閭d箞鎶ヨ〃瑙i噴寮曟搸鍗沖彲鏇挎崲榪欎簺鍙橀噺鐒跺悗鍐嶆墽琛孲QL璇彞錛屽湪絎簩閮ㄥ垎鎻愬埌緙栫▼鏃訛紝浼氭彁渚涘弬鏁拌瀹氫唬鐮併?br />聽
聽 g銆佹坊鍔犲彉閲忓拰浣跨敤鍙橀噺路路路路
聽聽聽聽 鍙橀噺鐨勫畾涔夌被浼煎弬鏁幫紝閫氳繃銆愰瑙堛戯紞銆愭姤琛ㄥ彉閲忋戝紑鍚姤琛ㄥ彉閲忓垪琛ㄥ璇濇錛堝伐鍏鋒潯涓婂彲浠ユ壘鍒扮浉搴旂殑宸ュ叿錛夛紝濡傚浘錛屽浘涓畾涔夌殑鍙橀噺鐨勪綔鐢ㄦ槸錛氬畾涔変竴涓狟ug鐨勮鏁板櫒錛屾暟鎹被鍨嬫槸java.lang.Integer,浣跨敤Count鍑芥暟榪涜緇熻瀛楁tester錛屼綔鐢ㄨ寖鍥存槸妯″潡緇勶紝涔熷氨鏄粺璁℃ā鍧楃殑Bug閲忋傚叾涓殑tester鍙互鏀規垚鍏朵粬闈炵粍瀵硅薄錛屾瘮濡俻roname鏄粍瀵硅薄錛屽氨涓嶈鐢ㄤ綔榪欓噷鐨勭粺璁″弬鏁般備互涓婃彁渚涚殑鏄嚜瀹氫箟鍙橀噺錛屽叾瀹瀒Report緋葷粺榪樻湁鎻愪緵涓浜涘唴宓岋紙Buildin錛夌殑鍙橀噺錛屾瘮濡傞〉鐮侊紝琛岃褰曟暟絳夛紝瑙嗛渶瑕佽屼嬌鐢ㄣ?br />聽聽
聽
聽 10銆佹渶鍚庣殑鎶ヨ〃路路路路
聽聽聽 a銆佸畬鎴愬悗鐨勬姤琛仿仿?br />聽聽聽聽
聽聽聽 b銆侀瑙堟姤琛仿仿?br />聽聽聽聽 鐐瑰嚮鍔ㄦ佽繍琛屾姤琛紝鍑虹幇濡傚浘鍐呭錛?br />聽聽聽聽聽
聽 11銆佸湪jsp涓皟鐢ㄦ姤琛仿仿仿仿?br />聽聽聽 瑙e喅榪欎釜闂涔熺敤浜嗘垜宸笉澶?澶╂椂闂?(錛屼絾鎬葷畻鏄悶瀹氫簡路路路路路
聽聽聽 涓嬮潰鍒嗗埆浠嬬粛浠df鏍煎紡鍜屼互html鏍煎紡鏄劇ず鎶ヨ〃路路路路
聽聽 a銆乸df鏍煎紡ireport_pdf.jsp路路路路
聽聽 <%@ page import="net.sf.jasperreports.engine.*" %>
聽聽聽 <%@ page import="java.util.*" %>
聽聽聽 <%@ page import="java.io.*" %>
聽聽聽 <%@ page import="java.sql.*" %>
聽聽聽 <%
聽聽聽聽聽 //鎶ヨ〃緙栬瘧涔嬪悗鐢熸垚鐨?jasper 鏂囦歡鐨勫瓨鏀句綅緗?br />聽聽聽聽聽 File reportFile = new File(application.getRealPath("ireport/xueji.jasper"));
聽聽聽聽聽 //榪欎釜鏄敤鏉ヨ仈鎺ユ垜鐨刴ysql 鐨凧DBC URL
聽聽聽聽聽 String url="jdbc:mysql://localhost:3306/xueji?useUnicode=true&characterEncoding=gb2312";
聽聽聽聽聽 Class.forName("org.gjt.mm.mysql.Driver").newInstance();
聽聽聽聽聽 //浼犻掓姤琛ㄤ腑鐢ㄥ埌鐨勫弬鏁板?br />聽聽聽聽聽 Map parameters = new HashMap();
聽聽聽聽 //"Name"鏄姤琛ㄤ腑瀹氫箟榪囩殑涓涓弬鏁板悕縐?鍏剁被鍨嬩負String 鍨?/font>
聽聽聽聽 parameters.put("banji", new String(" c1"));
聽聽聽聽 System.out.println("---------conn-------------");
聽聽聽聽 //榪炴帴鍒?nobr>鏁版嵁搴?/a>
聽聽聽聽 Connection conn = DriverManager.getConnection(url,"root","root");
聽聽聽聽 System.out.println("---------Jasper begin-------------");
聽聽聽聽 //鍦ㄦ帶鍒跺彴鏄劇ず涓涓嬫姤琛ㄦ枃浠剁殑鐗╃悊璺緞
聽聽聽聽 System.out.println(reportFile.getPath());
聽聽聽聽 byte[] bytes=JasperRunManager.runReportToPdf(reportFile.getPath(),parameters,conn);
聽聽聽聽 System.out.println("---------Jasper end-------------");
聽聽聽聽 response.setContentType("application/pdf");
聽聽聽聽 response.setContentLength(bytes.length);
聽聽聽聽 ServletOutputStream ouputStream = response.getOutputStream();
聽聽聽聽 ouputStream.write(bytes, 0, bytes.length);
聽聽聽聽 ouputStream.flush();
聽聽聽聽 ouputStream.close();
聽聽 %>
聽聽聽b銆乭tml鏍煎紡ireport_html.jsp路路路路
聽
聽聽
聽聽
聽聽
聽聽
聽聽
聽聽
聽聽 <%
聽聽聽 File reportFile = new File(application.getRealPath("/ireport/xueji.jasper"));
聽聽聽 JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
聽聽聽 Map parameters = new HashMap();
聽聽聽 parameters.put("baiji", "c1");
聽聽 //parameters.put("BaseDir", reportFile.getParentFile());聽聽聽
聽聽 //JRBeanArrayDataSource jrDataSource = new JRBeanArrayDataSource(objects);//objects涓鴻鎵撳嵃鐨勫疄浣撴暟緇勶紱
聽聽聽 Class.forName("org.gjt.mm.mysql.Driver");
聽聽聽 Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/xueji","root","root");
聽聽聽 JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);
聽聽聽聽聽聽聽聽聽
聽聽聽 JRHtmlExporter exporter = new JRHtmlExporter();
聽聽聽 StringBuffer sbuffer = new StringBuffer();
聽聽聽 Map imagesMap = new HashMap();
聽聽聽 session.setAttribute("IMAGES_MAP", imagesMap);
聽聽聽
聽聽聽 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
聽聽聽 exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
聽聽聽 //exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
聽聽聽 //exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "/ireport/ireport_html.Image?image=");
聽聽聽 //exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, "
");
聽聽聽 exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
聽聽聽 exporter.exportReport();
聽聽聽 //out.flush();
聽聽聽 conn.close();
聽聽 % >
娉ㄦ剰錛氫互html鏍煎紡璋冪敤涓昏瑕佹敞鎰?/exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "images鐩綍鐨勮礬寰?image=");
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍦ㄧ敓鎴恏tml棰勮鐨勬椂鍊欎細鐢熸垚涓涓猵x鏂囦歡錛岃岃繖涓猧mages_uri鐨勮礬寰勫氨鏄偅涓猵x鐨勮礬寰勶紝寤鴻涓嶇敤錛屽氨鐢ㄤ笅闈?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鐨勮鍙ュ氨鍙互浜喡仿仿仿?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);聽聽聽
鑰岃繖涓鍙ュ垯鏄鐞嗗垎欏電敤鐨劼仿仿仿仿犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅犅?
//exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, "
");
闇瑕佹敞鎰忕殑鍦版柟路路路路
蹇呴』鍦╰omcat5浠ヤ笂鐗堟湰涓繍琛屄仿仿仿?br />鍦ㄨ繍琛岀殑鏃跺欒繕瑕佸皢jasperreports/lib涓嬬殑鍖呭叏閮ㄦ嫹鍒皌omcat涓嬩綘鎵鏀炬枃浠剁洰褰曚笅鐨剋in-inf/lib涓嬄仿仿?br />鐗瑰埆瑕佹敞鎰忕殑鏄湅鐪媔report/lib涓嬬殑鍖呬笌jasperreports/lib鐨勫寘鏄惁鍏煎路路路
涔嬪墠鎴戠殑涓鐩存湁闂灝辨槸鍥犱負鎴戠殑鍙戝竷鐜鏄痡asperreports-0.6.7.jar鑰岃繍琛岀幆澧冩槸jasperreports-0.6.8.jar路路路
榪欐牱涔熶細鍑虹幇閿欒鐨劼仿仿仿?/font>
鍙傝冭祫鏂櫬仿仿仿?br />鎰熻阿路路路
http://www-128.ibm.com/developerworks/cn/java/j-ireport/?ca=dwcn-newsletter-java
http://blog.csdn.net/jemlee2002/archive/2004/10/05/125107.aspx