iReport & JasperReport配置及用戶簡明手冊

          iReport & JasperReport配置及用戶簡明手冊- -

          ??????????????????????????????????????

          關于iReport和JasperReport的簡明手冊

          By Gem 伍子軒


          1安裝

          1.1 iReport的安裝

          iReport直接解壓后,將J2SDK\lib目錄下的tools.jar拷貝到iReport\lib目錄下,然后在iReport目錄下運行iReport.bat即可。
          需要注意的是tools.jar的版本必須要與本機安裝的jre一致,也就是說,如果系統安裝的是jre1.4.2就必須用jdk1.4.2tools.jar。

          1.2 JapserReport開發(運行)環境的搭建

          JasperReport的開發環境必須要導入以下所有包:

          1.? JasperReport包,如jasperreports-0.6.1.jar;

          2.? Aparche Common包,包括logging、digester、beanutils、collectionslogging-api;

          3.? iText包,包括itext-1.1.jariTextAsian.jar(用于輸出中文字符到PDF文件)

          以上所有包(除了iTextAsian.jar)都已經包含在iReport\lib目錄下。

          2 開發流程

          iReport可視化編輯生成的文件是jrxml文檔,這是一種xml文件,記錄了一份report的詳細信息,我們可以直接用寫字板打開它編輯,iReport就是一個方便我們生成和編輯jrxml文件的工具,它也可以很方便地將jrxml文件編譯成jasper報表文件。

          jrxml文件通過Jasper編譯之后就變成了jasper文件,這份文件才是真正在程序中調用生成報表的report文件。

          但是有一點要注意的是,jasper的各個版本編譯出來的jasper文件并不兼容,就是說用0.6.1版編譯出來的文件用0.6.4版調用是會出錯的,而iReport自帶的Jasper版本是0.6.1,而jasper的最新版本是0.6.4。所以為了保持通用性,我建議只用iReport來開發編輯jrxml文件,而不編譯成jasper文件,在我們的打印報表程序中再即時編譯一次。雖然這樣效率可能會低了一點,但是保證了不同版本的兼容性。

          在我們的程序中,要調用Jasper的話,首先要得到一個數據庫的Connection,形如:Connection con = ...

          需要往JasperReport傳參數的話只需要新建一個Map,以參數名作為key,需要傳入的對象作為value,譬如:

          Map props = new HashMap();

          ????? props.put("name", new String("name"));

          需要多個參數只需分別putMap里去就可以了。

          JasperReport有如下幾個主要的Manager

          JasperCompileManager

          jrxml文件編譯成jasper文件或JasperReport對象

          JasperFillManager

          從數據源中獲取數據并填充jasper文件或JasperReport對象,產生JasperPrint對象

          JasperPrintManager

          JasperPrint對象直接輸出到打印機打印

          JasperExportManager

          JasperPrint對象導出成PDFHTML文件(或流)

          JasperRunManager

          運行一個jasper文件或JasperReport對象并輸出到PDFHtml文件(或流)中,我的理解是等于集成了JasperFillManagerJasperExportManager的功能

          對于上述對象的詳細說明請參閱JasperReport的文檔。

          例程:

          例程:

          public static void main(String[] args) {

          ??? try {

          ????? Class.forName("org.gjt.mm.mysql.Driver");

          ????? Connection con = DriverManager.getConnection(

          ????????? "jdbc:mysql://wes:3306/umpdb?useUnicode=true&characterEncoding=GBK", "root", "elite");

          ????? File f1 = new File("Account.jrxml");

          ????? File f2 = new File("Contact.jrxml");

          ????? JasperReport main = JasperCompileManager.compileReport(f1

          ????????? .getAbsolutePath());

          ????? JasperReport report = JasperCompileManager.compileReport(f2

          ????????? .getAbsolutePath());

          ????? Map props = new HashMap();

          ????? props.put("subreport", report);

          ????? JasperPrint print = JasperFillManager.fillReport(main, props,con);

          ????? //JasperPrintManager.printReport(print,true);

          ????? JasperExportManager.exportReportToPdfFile(print, "a.pdf");

          ????? //JasperRunManager.runReportToPdfFile("Account.jasper", "a.pdf", props, con);

          ??? } catch (ClassNotFoundException e) {

          ????? // TODO 自動生成 catch

          ????? e.printStackTrace();

          ??? } catch (SQLException e) {

          ????? // TODO 自動生成 catch

          ????? e.printStackTrace();

          ??? } catch (JRException e) {

          ????? // TODO 自動生成 catch

          ????? e.printStackTrace();

          ??? }

          ? }

          3 注意事項

          1iReport中新建中文報表的時候記得要輸入XML編碼GB2312。

          2iReport中定義中文字體的時候,要選擇PDF Font NameSTSong-Light(宋體)、MHei-Medium(黑體)、MSung-Light,在PDF Encoding中選擇GB-UCS2-H(Chinese Simplified),否則輸出到PDF時會亂碼。

          3.用Report SQL查詢之后,可能會出現某些字段沒有自動建立Field,就需要在Field中手動定義了。

          posted on 2006-12-04 18:28 Tom 閱讀(1818) 評論(0)  編輯  收藏 所屬分類: 報表工具 、Appfuse

          <2006年12月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類(42)

          隨筆檔案(43)

          文章分類

          相冊

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 白城市| 威远县| 烟台市| 同仁县| 新丰县| 光泽县| 儋州市| 绩溪县| 安塞县| 射洪县| 吉木乃县| 遂平县| 永定县| 河曲县| 井陉县| 娄烦县| 错那县| 张家界市| 花垣县| 惠东县| 大庆市| 临夏县| 乾安县| 高要市| 金塔县| 攀枝花市| 华宁县| 大厂| 瑞昌市| 巢湖市| 河源市| 三亚市| 张掖市| 苗栗市| 姜堰市| 乡宁县| 徐汇区| 白山市| 东明县| 榆林市| 双牌县|