隨筆-28  評論-15  文章-81  trackbacks-0
          JasperReports是一個開源的java報(bào)表制作引擎
          http://jasperreports.sourceforge.net

          iReport是JasperReports的一個GUI工具,用來生成JasperReports的jrxml文件。
          http://ireport.sourceforge.net



          首先使用iReport制作報(bào)表的模板(我自己起的名詞):

              運(yùn)行iReport,新建一個report。
              在Title band中輸入報(bào)表的名稱,好象使用pageheader band也可以,目前我還沒有弄明白2者具體的差別。
              在column header band中放置一些static text,做為報(bào)表的列標(biāo)題。
              在detal band中放入一些textfield,顯示報(bào)表的詳細(xì)數(shù)據(jù)。
              在summary band中放入類似于"合計(jì)"之類的textfield,這個band是顯示在最后一行數(shù)據(jù)的下放。
              在LastPageFooter band中放入想在最后一頁顯示的信息,比如說"審閱人簽名"之類的。

          這樣報(bào)表的框架就基本上搭好了,然后compile一下檢查是否有錯誤,如果沒有錯誤那么就可以在程序中使用這個報(bào)表模板了。

          JasperReports介紹:
             
              使用JasperReports生成報(bào)表是非常簡單的,僅僅使用net.sf.jasperreports.engine包中的幾個類即可完成報(bào)表的生成、預(yù)覽、打印、導(dǎo)出等各個功能。

          1.  net.sf.jasperreports.engine.JasperCompileManager類。
              使用這個類的幾個靜態(tài)方法即可完成對報(bào)表的編譯工作(具體參見api文檔)
              編譯完成后可以JasperCompileManager有兩種處理方式:
                 1> 返回一個JasperReport對象
                 2> 在.jrxml文件所在的目錄生成一個.jasper文件
              這兩種方式是由程序員自己選擇的。不過我比較傾向使用.jasper文件,畢竟報(bào)表的結(jié)構(gòu)不是每天都在改動,所以每次重新編譯報(bào)表并不是很劃算。

          2.  net.sf.jasperreports.engine.JasperFillManager類
              這個類的作用是用數(shù)據(jù)填充報(bào)表。它可以使用JasperReport對象也可以使用。jasper文件做為報(bào)表模板。
              它同樣有2中處理方式:
                    1> 返回一個JsaperPrint對象。
                    2> 在.jasper文件所在目錄生成一個.jrprint文件
              這個類使用net.sf.jasperreports.engine.JRDataSource接口的實(shí)現(xiàn)做為數(shù)據(jù)源。任何實(shí)現(xiàn)了JRDataSource的類均可做為數(shù)據(jù)源使用
              在net.sf.jasperreports.engine.data包中定義了一些數(shù)據(jù)源,可根據(jù)自己的需要選擇。這里我使用的是JRTableModelDataSource做為
              數(shù)據(jù)源(因?yàn)槲业膱?bào)表還要顯示在Table中)。

          3. net.sf.jasperreports.engine.JasperPrintManager和net.sf.jasperreports.engine.JasperExportManager
             者兩個類的作用是打印、導(dǎo)出報(bào)表
             他們使用 JasperPrint 和 .jrprint文件做為輸入。
             可以根據(jù)自己的需要使用里面的方法。

          例:
                 import net.sf.jasperreports.engine.*;
                 import net.sf.jasperreports.view.*;
                 public class CompileReport {
                    public static void main(String args[]) {
                       try {
                          //編譯report.jrxml并在report.jrxml所在的目錄中生成report.jasper文件
                          JasperCompileManager.compileReportToFile("report.jrxml");
                          //填充數(shù)據(jù),這里使用的是JREmptyDataSource
                          JasperFillManager.fillReportToFile("report.jasper", null, new JREmptyDataSource(50));
                          //預(yù)覽報(bào)表,false代表不是使用xml文件。
                          JasperViewer view = new JasperViewer("reports.jrprint", false);
                          view.pack();
                          view.setVisible(true);
                       }
                       catch (Exception e) {
                          e.printStackTrace()
                       }
                    }
                 }
          posted on 2008-01-10 13:43 譚明 閱讀(643) 評論(0)  編輯  收藏 所屬分類: Oracle
          主站蜘蛛池模板: 诸城市| 茌平县| 东乡县| 伊宁市| 小金县| 永州市| 马边| 石台县| 宜都市| 喀什市| 杂多县| 五家渠市| 峡江县| 永嘉县| 清丰县| 江西省| 临洮县| 湖北省| 齐河县| 依兰县| 鸡西市| 彝良县| 磐安县| 三亚市| 左权县| 古丈县| 马公市| 长丰县| 黑水县| 开平市| 广河县| 武强县| 平南县| 平罗县| 德惠市| 泰顺县| 辉县市| 瑞金市| 西峡县| 吴堡县| 县级市|