国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
使用iReport制作報表模板

文檔選項

將此頁作為電子郵件發(fā)送


New site feature

Kick-start your Java apps with free software


級別: 初級

舒峰, 軟件工程師, 湖南省長沙鐵道學(xué)院科創(chuàng)計算機(jī)系統(tǒng)集成有限公司

2005 年 1 月 01 日

現(xiàn)在很多公司和個人都在使用iReport制作報表模板,我接觸的時間也不長,在這里,我將我在實踐過程中的一些經(jīng)驗以及碰到的一些問題和大家一起來探討。

一、iReport介紹

說到iReport不得不先介紹Jasperreport,Jasperreport是一個報表制作程序,用戶需要按照它制定的規(guī)則編寫一個XML文件,然后得到用戶需要輸出的格式文件。它支持輸出的文件格式包括PDF,HTML,XML,XLS,CVS等等。而iReport就是一個制作Jasperreport的XML文件的可視化開發(fā)工具。





回頁首


二、模板制板

首先必須下載一個iRport(地址:http://ireport.sourceforge.net),現(xiàn)在的最高版是0.4.0,我們這里使用的是0.2.2。

將iReport解壓縮以后編輯目錄下的iReport.bat文件即可,如下

                        @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                        

只要設(shè)置相應(yīng)的一些路經(jīng)就可以,這里是采用ant來運(yùn)行,當(dāng)然如果你沒有安裝ant也不想安裝它,那么也可以,找到noAnt文件夾下的startup.bat文件即可運(yùn)行。

建立新模板時,便得到如圖所示的界面。



選中菜單項"Datatsource",單擊其子菜單項"Connection/Datasources",便會彈出一個編輯框,選擇"New"按鈕,



輸入數(shù)據(jù)源名稱,選擇JDBC Driver,在輸入JDBC URL時,可以點(diǎn)擊"Wizard"按鈕,它會根據(jù)你選的JDBC Driver配置好你的URL,不過得修改IP地址以及DatabaseName,輸入數(shù)據(jù)庫名、用戶名、密碼。點(diǎn)擊"Test"按鈕,確定連接情況,然后保存。

下圖是我做好的一個報表模板:



$F{}是用來標(biāo)明這是數(shù)據(jù)庫字段。$F{WINDOWS_NAME}、$F{NUMBER}、$F{vname}、$F{SP_NAME}和$F{SP_TYPE}是數(shù)據(jù)庫里的字段,也是我要在模板里用到的字段。對于$F{NUMBER}、$F{vname}、$F{SP_NAME}和$F{SP_TYPE}這四個字段,雖然放在其他域也可以顯示出結(jié)果,比如:pageHeader域、columnHeader域、columnFooter域等等,但是因為會有多列的數(shù)據(jù)要顯示,所以必須放到"detail"域中。

模板畫完了,現(xiàn)在來配置模板的查詢語句,以及字段、變量和參數(shù)。

首先輸入查詢語句,如"select * from v_baseinfo_statbanjiereport",點(diǎn)擊"Read fields"按鈕,會查詢出該表的所有字段名



如果您要有條件的查詢,那么就在后面添加Where語句,如"select * from v_baseinfo_statbanjiereport where DEPT_NAME=$P{orgname} and END_SP_DAY=$P{etime}",點(diǎn)擊"Save query to report"按鈕保存。

這里要提醒大家注意的是,您可以直接把參數(shù)寫入Where語句中,象這樣"where DEPT_NAME=‘中國‘ and END_SP_DAY=‘2004-11-23‘";但是從java程序或者jsp頁面?zhèn)鬟^來的參數(shù)是中文字符的話,您就必須做編碼轉(zhuǎn)換或者用英文字符、數(shù)字來代替;還有像日期參數(shù)"2004-11-23",jasperreports好象解析不了,如果你把SQL語句改成" select * from v_baseinfo_statbanjiereport where DEPT_NAME=‘$P{orgname}‘ and END_SP_DAY=‘$P{etime}‘",那么又會拋出異常,因為Jasperreport會先把SQL語句設(shè)置成預(yù)編譯語句"select * from v_baseinfo_statbanjiereport where DEPT_NAME=?and END_SP_DAY=?",所以SQL語句中用到參數(shù)的時候,除了其特定的"$P{}"符號外,不能有別的標(biāo)點(diǎn)符號,傳進(jìn)去的參數(shù)值也盡量不要帶標(biāo)點(diǎn)符號,所以日期格式得改成"20041123"。

設(shè)置模板字段:



設(shè)置模板參數(shù):



當(dāng)這些全部做完后,點(diǎn)擊"Save"按鈕,就會生成一個XML文件,再點(diǎn)擊"Compile"按鈕,就會生成一個后綴名為jasper的文件。

現(xiàn)在可以預(yù)覽一下模板的效果,先選擇菜單項"Build"的子菜單項"PDF preview"、"HTML preview"、"JAVA 2D preview"、"Excel preview"、"CSV preview"和"JRViewer preview"中的一項(對這些項顯示工具的配置在菜單項Tools\Options..下的External programs), 再點(diǎn)擊"Execute report";如果你想帶數(shù)據(jù)預(yù)覽,還得先激活一下剛配置的數(shù)據(jù)源,選中菜單欄"Build"下的子菜單欄"Set active connection",會彈出一編輯框,選中一個數(shù)據(jù)源名稱,點(diǎn)擊"OK"。

此時我們就要引入一個jsp頁面,假設(shè)是pdf.jsp,那么下面就是pdf.jsp的代碼:

                        <%@ page import="dori.jasper.engine.*" %>                        <%@ page import="java.util.*" %>                        <%@ page import="java.io.*" %>                        <%@ page import="java.sql.*" %>                        <%                        File reportFile = new File(application.getRealPath("/reports/ribanjie#jasper"));                        Map parameters = new HashMap();                        parameters.put("orgname", "zhongguo");                        parameters.put("etime", "20041123");                        Connection conn=null                        //以下忽略得到數(shù)據(jù)庫連接過程                        //……                        byte[] bytes =                        JasperRunManager.runReportToPdf(                        reportFile.getPath(),                        parameters,                        conn                        );                        response.setContentType("application/pdf");                        response.setContentLength(bytes.length);                        ServletOutputStream ouputStream = response.getOutputStream();                        ouputStream.write(bytes, 0, bytes.length);                        ouputStream.flush();                        ouputStream.close();                        %>                        

程序里面要和大家說明的就是,"/reports/test.jasper"這個路徑是相對于你這個jsp頁面的,比如你的jsp頁面保存在D:\\..\ROOT\目錄下,那么你就必須在這個目錄下建一個report目錄,然后把你做好的報表模板文件放到該目錄下來。

                        		Map parameters = new HashMap();                        parameters.put("orgname", "zhongguo");                        parameters.put("etime", "20041123");                        

"orgname"和"etime"必須和模板時定義的參數(shù)名稱一致。





回頁首


三、結(jié)束語

到此整個模板就算完成了,有什么沒有說明白或者錯誤的地方,希望你能和我一起來討論。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ireport jasperreports報表
IReport嵌套報表設(shè)置
ireport+jasperreport使用心得
Java開源報表JasperReport、iReport4.5.1使用詳解(一)
一次 applet 客戶端打印 jasperreport 報表任務(wù)筆記
JasperReports+iReport在eclipse中的使用
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服