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

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