久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    使用iReport制作報表模板

     冰紅荼 2006-03-23

    文檔選項
    將此頁作為電子郵件發送

    將此頁作為電子郵件發送


    New site feature

    Kick-start your Java apps with free software


    級別: 初級

    舒峰, 軟件工程師, 湖南省長沙鐵道學院科創計算機系統集成有限公司

    2005 年 1 月 01 日

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

    一、iReport介紹

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





    回頁首


    二、模板制板

    首先必須下載一個iRport(地址:http://ireport.),現在的最高版是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
                            

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

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



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



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

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



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

    模板畫完了,現在來配置模板的查詢語句,以及字段、變量和參數。

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



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

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

    設置模板字段:



    設置模板參數:



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

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

    此時我們就要引入一個jsp頁面,假設是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/ribanjietongji.jasper"));
                            Map parameters = new HashMap();
                            parameters.put("orgname", "zhongguo");
                            parameters.put("etime", "20041123");
                            Connection conn=null
                            //以下忽略得到數據庫連接過程
                            //……
                            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"必須和模板時定義的參數名稱一致。





    回頁首


    三、結束語

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

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 国产成AV人片久青草影院| 深夜视频国产在线观看| 日日摸日日碰夜夜爽亚洲| 国产精品视频午夜福利| 军人妓女院BD高清片| 成人H动漫精品一区二区无码| 亚洲一区二区精品极品| 52熟女露脸国语对白视频| 2021国产成人精品久久| 欧美视频专区一二在线观看| 亚洲爆乳精品无码AAA片| 日本一道一区二区视频| 色橹橹欧美在线观看视频高清 | 秋霞A级毛片在线看| 欧美成人家庭影院| 亚洲欧美日韩综合一区在线 | 麻豆国产传媒精品视频| 成在线人永久免费视频播放| 国产性一交一乱一伦一色一情| 久久亚洲道色宗和久久| 一本精品99久久精品77| 九九热在线视频观看这里只有精品| 99久久精品国产一区二区蜜芽| 国产萌白酱喷水视频在线观看 | 成 人色 网 站 欧美大片| 草草浮力影院| 果冻传媒MV国产推荐视频| 国产稚嫩高中生呻吟激情在线视频| 国产AV人人夜夜澡人人爽| 国产午夜福利小视频合集| 亚洲av永久无码精品漫画| 亚洲中文字幕精品久久久久久动漫| 最新亚洲人成网站在线影院| 亚洲制服丝袜系列AV无码| 国内自拍视频一区二区三区| 四虎永久免费高清视频| 色噜噜狠狠狠综合曰曰曰| 加勒比中文字幕无码一区| 中文字幕国产精品专区| 免费人成在线观看网站| 天下第二社区在线视频|