[聲明]內(nèi)容部分摘自網(wǎng)上,感謝網(wǎng)友共享
第一部分:環(huán)境配置
一、JDK、WEB服務(wù)器及數(shù)據(jù)庫的安裝與配置
(此處略,本文測試環(huán)境JDK1.5、Resin2.1.7、SQLServer2K)
二、IReport的安裝
下載地址
http://ireport.sourceforge.net
目前最新版本1.3.3
包中已經(jīng)包含
iText-1.3.1.jar
和
jasperreports-1.3.3.jar
下載報(bào)表中文支持包
iTextAsian.jar
下載地址
http://itextpdf.sourceforge.net
(注:需注冊)
將下載的IReport解壓至任意目錄,如 D:\iReport-1.3.3 將 iTextAsian.jar 添加至 lib 目錄下
執(zhí)行 iReport.bat 或者 iReport.exe 均可啟動 iReport
第二部分:IReport使用簡介
JasperReports可以理解為一個編譯器或者解析器。用戶通過IReport或者使用文本編輯器設(shè)計(jì)報(bào)表,其編碼格式要符合jasperreports.dtd的標(biāo)簽和屬性定義的XML編碼格式。使用此XML文件,用戶可以定義整個報(bào)表,描述哪里放置文本框、圖形、怎樣存取數(shù)據(jù),怎樣計(jì)算列值,如何顯示等等,JasperReports工作原理如圖:
XML源文件必須被編譯后產(chǎn)生一個文件后綴為“.jasper”的報(bào)表文件,由JRDataSource提供數(shù)據(jù)對報(bào)表文件進(jìn)行填充,現(xiàn)在有了數(shù)據(jù)加上jasper文件,就可以生成打印報(bào)表。即:A datasource + a jasper file = a print
IReport是一個制作JasperReport XML文件的可視化設(shè)計(jì)工具。以下是其使用時的簡單說明:
一、系統(tǒng)選項(xiàng)配置
Options|選項(xiàng)
,以下為注意的配置點(diǎn)
二、數(shù)據(jù)源設(shè)置:
Data|連接/資料來源
,選擇New,DataBase JDBC connection
注:請先將JDBC包放置于目錄lib下,否則不能顯示您數(shù)據(jù)庫的Driver;也可以在options|Classpath中進(jìn)行JAR包的添加
三、主要使用的工具欄簡介
四、Band詳解
五、報(bào)表參數(shù)說明
系統(tǒng)默認(rèn)變量
$V{PAGE_NUMBER}
代表當(dāng)前頁數(shù)(可以是頁碼也可以是頁數(shù),通過TextField的計(jì)算時間的不同值來設(shè)置)
$V{PAGE_COUNT}
當(dāng)前頁面中記錄的數(shù)目
$V{groupname_COUNT}
代表當(dāng)前組的記錄數(shù)
$V{COLUMN_NUMBER}
列號碼
$V{COLUMN_COUNT}
當(dāng)前列中記錄的數(shù)目(是當(dāng)前頁里行的序號,在新頁上會重置為1)
$V{REPORT_COUNT}
當(dāng)前文檔中數(shù)據(jù)源記錄數(shù)目
六、如果以PDF輸出,元素字體設(shè)置如下
--------------------注:沒有時間寫,以下內(nèi)容從簡------------------------
第三部分:簡單示例
一、使用
檔案|報(bào)表精靈
1. 注意選擇連接/資料來源(即數(shù)據(jù)源),在SQL query中填寫報(bào)表查詢語句
2. 依據(jù)您的查詢語句選擇列出來要顯示的字段名
3. 分組字段的選擇,可以選擇三個,注意如果選擇分組字段,SQL語句應(yīng)加上相應(yīng)的order by
4. 選擇報(bào)表布局
參考
http://ireport.sourceforge.net/swf/Report_Wizard_viewlet_swf.htm
二、報(bào)表參數(shù)設(shè)置
參考
http://ireport.sourceforge.net/swf/Parameters_viewlet_swf.htm
三、子報(bào)表
參考
http://ireport.sourceforge.net/swf/Subreport_viewlet_swf.htm
(注:視頻中子報(bào)表參數(shù)前要加P,視頻沒有添加)
四、分組報(bào)表
參考
http://ireport.sourceforge.net/swf/Groups_viewlet_swf.htm
注:點(diǎn)擊下載所有視頻
http://jasperforge.org/sf/docman/do/downloadDocument/projects.ireport/docman.root/doc1021
第四部分:WEB使用示例
需要添加的包(在IReport目錄lib下可以找到):
commons-beanutils-1.7.jar
commons-collections-2.1.jar
commons-digester-1.7.jar
commons-logging-1.0.2.jar
itext-1.3.1.jar
iTextAsian.jar
jasperreports-1.3.3.jar
一、胖客戶端方式,代碼如下
String xmlFileName = System.getProperty("user.dir")+"
\\test_report.jrxml
";
String jasperFileName = System.getProperty("user.dir")+"
\\test_report.
jasper
";
String printFileName = System.getProperty("user.dir")+"
\\test_report.
jrprint
";
try {
? /* 編譯報(bào)表文件.jrxml,生成文件.jasper */
? JasperCompileManager.compileReportToFile(xmlFileName);
? /* 設(shè)置參數(shù)*/
? HashMap params = new HashMap();???? //建立參數(shù)表
? params.put("yourParamName","");??????? //設(shè)置參數(shù)值
? Connection cnn = getConnection(); //自己添加得到數(shù)據(jù)庫連接的函數(shù)
? /*填充報(bào)表文件.jasper,生成文件.jrPrint*/
? JasperFillManager.fillReportToFile(jasperFileName,params,cnn); //用數(shù)據(jù)填充報(bào)表
?
? /* 預(yù)覽報(bào)表文件.jrprint */
? File sourceFile = new File(printFileName);
? JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile); //生成報(bào)表結(jié)果
? JasperViewer.viewReport(jasperPrint);????? //預(yù)覽報(bào)表?
? freeConnection(cnn); //自己添加釋放數(shù)據(jù)庫連接的函數(shù)
?
} catch (JRException e){
? e.printStackTrace();
}
二、JSP訪問方式
? boolean isOK = true; //判斷是否成功
? try {
? //第一步:裝載jasper文件
? File jasperFileName = new File(request.getRealPath("/Reports/test_report.jasper"));
? //第二步:設(shè)置參數(shù)值
? HashMap params = new HashMap();
? params.put("yourParamName","");??????? //設(shè)置參數(shù)值
? //第三步:利用JasperRunManager生成PDF文件
? ConnectionPool connMgr = ConnectionPool.getInstance();
? Connection conn = connMgr.getConnection();
? JasperRunManager.runReportToPdfFile(jasperFileName.getPath(),parameters,conn);
? }catch(Exception ex){
? ?? isOK = false;
? }
? //以下只需要訪問/Reports/test_report.pdf頁面即可
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
