目 錄
前言.......................................................................................................................
前言
  本文流程是以一個案例來說明報表的製作,因此,其案例需求描述為:將一
份關鍵名單依照”城市別”作分群並記算其筆數,而後以報表印出。(本案例參考
來自:jasperReport_prj1.2.7 的 demo case。)因此,預期會有:...
(二)環境建置
 1. 為使編譯後的*.jasper 與*.jrxml 放在同一目錄:
    Options > 選項 > 編譯,勾選"編譯在報表資料夾"。
 2. 設定外部程式 pdf:
    Options > 選項 > 外部程式,設定...
(一)報表欄位、變數與參數設定
下拉式選單 檔案 > 開啟新檔,在”報表名稱”填入一報表名
稱”PrintReport.jrxml”,其它照預設。
在 檔案 > 存檔,存至<webroot>out_demoreports 下。



(1)Us...
(2)Using Group
 預覽 > 報表群組 > 新增,新增設定如下:
一
群組欄位        屬性設定
CityGroup   [Group expression] $F{City}
            [Min height ...
(3)Using variable
在 預覽 > 報表變數 > 新增,設定如下:
變數名          屬性設定
CityNumber   [Variable Name] CityNumber
             [class typ...
(4)Using Parameter
在 預覽 > 報表參數 > 新增,新增設定如下:
參數名                     屬性設定
BaseDir,報表之 Logo 圖 [Class type] java.lang.File
片的...
分別設定如下:
Document Struct   Setup
Title             Band:height 50
PageHeader        Band:height 20
ColumnHeader      Band:h...
(2)加入報表物件
(A)Title 欄




             先取一 Frame 容器   ,並於其上放入下表所述物件:

    報表物件           頁籤        屬性設定



                ...
Image        【Image】        1.在[Image expresson]加入
                               new File($P{BaseDir}, "via.gif")
       ...
Static text      【common】     [backgroup] black
                                [Foregroup] white
  分別設置三個:          【Font...
【TextField】 [TextField Expression]:
                          " "+
                          String.valueOf($V{CityNumber}...
(E)CityGroupFooter




   報表物件          頁籤          屬性設定
                 【common】 依序設定 top,left,height:19, 0, 1
   Line

...
報表物件        頁籤           屬性設定
            【Common】 分別設定 Top,Left,Height:10, 0, 1
 Line

TextField   【Text Field】1. [Evalua...
(3)編譯 JRxml 檔
  將設計好的 JRxml 檔作編譯,建立 > 編譯,編譯後的檔案(jasper),會
放置於同目錄內。此外,亦可於 ireport 直接執行報表(先決定要預覽的 format)




              ...
參.在網頁上執行

簡介 JasperReport API
  該架構圖主要呈現與報表輸出有關的 API,其由上而下的順序,使得以瞭解
報表中介過程中所會使用的程式介面為何,如此,將有助程式員之程式的開發。
  下方會展示不同格式文件的輸出,將...
JasperReport 輸出相關 API 架構圖

                    *.Jrxml 檔

          JasperCompilerManager
                Class 之方法



   ...
程式撰寫

HTML 輸出
Out_demo/HtmlOutput.jsp
<%--
HTML 文件輸出(在同一目錄下)
--%>
<%@ page contentType="text/html; charset=Big5" %>
<%@ pa...
parameters,
                  new WebappDataSource()
                  );


          JRHtmlExporter exporter = new JRHtml...
HTML 呈現




Out_demo/HtmlShow.jsp
<%--
Html 文件呈現(在同一目錄下)
--%>
<%@ page contentType="text/html; charset=Big5" %>
<%@ page i...
if (!reportFile.exists())
          throw new JRRuntimeException("File PrintReport.jasper not found. The report design
mus...
<title>
           已成功呈現一個 html 檔!
           </title>
  </head>
  <body>
  已成功輸出一個 html 檔!
  </body>
</html>




HTML 預覽與...
throw new JRRuntimeException("File PrintReport.jasper not found. The
report design must be compiled first.");


          ...
pageIndex = 0;
     }


     if (pageIndex > lastPageIndex)
     {
             pageIndex = lastPageIndex;
     }
      //...
<td width="15%"><a href="print/printall.jsp" target="_blank">印報表<font
size="2">全</font></a><font color="#3366FF" size="4">...
<hr>
<table width="100%" cellpadding="0" cellspacing="0" border="0">


  <tr>
     <td width="30%" height="33">&nbsp;</td>...
在 Web.xml 設定,使用 jsp-file 做報表元件的話,於 web.xml 加上下述
<servlet>
    <servlet-name>pdf</servlet-name>
    <jsp-file>out_demo/PdfS...
Excel 輸出
    程式碼:Out_demo/ExcelShow.jsp




圖表 1

    加這段文字於 web.xml
<servlet>
    <servlet-name>csvreport</servlet-name>
...
加這段文字於 web.xml
<servlet>
    <servlet-name>xslreport</servlet-name>
    <jsp-file>out_demo/XslShow.jsp</jsp-file>
  </serv...
加這段文字於 web.xml
<servlet>
    <servlet-name>rtfreport</servlet-name>
    <jsp-file>out_demo/Rtfshow.jsp</jsp-file>
  </serv...
Upcoming SlideShare
Loading in …5
×

Report out 2007final

2,569 views
2,468 views

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,569
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
33
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Report out 2007final

  1. 1. 目 錄 前言..........................................................................................................................................................2 壹.製作準備 .............................................................................................................................................2 (一)下載所需.........................................................................................................2 (二)環境建置.........................................................................................................3 貳.使用 Ireport 設計報表 ........................................................................................................................3 (一)報表欄位、變數與參數設定.........................................................................4 (1)Using Field ................................................................................................4 (2)Using Group ..............................................................................................5 (3)Using variable ...........................................................................................6 (4)Using Parameter ........................................................................................7 (二)報表內文設計.................................................................................................7 (1)設計報表架構...........................................................................................7 (2)加入報表物件...........................................................................................9 (3)編譯 JRxml 檔 ........................................................................................15 參.在網頁上執行 ...................................................................................................................................16 簡介 JasperReport API ........................................................................................16 程式撰寫..............................................................................................................18 HTML 輸出 .................................................................................................18 HTML 呈現 .................................................................................................20 HTML 預覽與列印 .....................................................................................22 其它輸出格式......................................................................................................26 PDF 輸出 .....................................................................................................26 Excel 輸出 ...................................................................................................28 Xls 輸出 .......................................................................................................28 RTF 輸出 .....................................................................................................29 參考文件................................................................................................................................................30 1
  2. 2. 前言 本文流程是以一個案例來說明報表的製作,因此,其案例需求描述為:將一 份關鍵名單依照”城市別”作分群並記算其筆數,而後以報表印出。(本案例參考 來自:jasperReport_prj1.2.7 的 demo case。)因此,預期會有: 1. 製作「分群」的報表。過程會實作如何設定報表欄位、報表變數以及報表參 數。 2. 藉由 java 網頁程式,以實現用 Borwser 觀看常見的報表格式。 3. 簡介 JasperReport 關於報表輸出格式的 API。 最後,不免俗地,再 review 一下 JasperReport 之目的吧: The main purpose of JasperReports is to help create page-oriented ready-to-print documents in a simple and flexible manner。 壹.製作準備 (一)下載所需 1. Ireport1.2.7(內即附有 JasperReport.jar) http://prdownloads.sourceforge.net/ireport/iReport-1.2.7-windows-installer.e xe?download 2. ItextAsian.jar (當無此,如指定 pdf 為 output 文件,將無法顯示字型) http://itext.sourceforge.net/downloads/iTextAsian.jar 3. Tomcat4 or later http://tomcat.apache.org/ 4. JDK http://java.sun.com 2
  3. 3. (二)環境建置 1. 為使編譯後的*.jasper 與*.jrxml 放在同一目錄: Options > 選項 > 編譯,勾選"編譯在報表資料夾"。 2. 設定外部程式 pdf: Options > 選項 > 外部程式,設定[pdf 預覽],找到 pdf 的執行程式 AcroRd32.exe。其它如 html, rtf, cvs 等亦是可設定。 3. 啟動一個 tomcat server。 貳.使用 Ireport 設計報表 本範例設計結果如下: 而其執行結果如下:(PDF format) 3
  4. 4. (一)報表欄位、變數與參數設定 下拉式選單 檔案 > 開啟新檔,在”報表名稱”填入一報表名 稱”PrintReport.jrxml”,其它照預設。 在 檔案 > 存檔,存至<webroot>out_demoreports 下。 (1)Using Field 建立四個欄位,並在 預覽 > 報表欄位 > 新增,設定如下: 欄位名 屬性設定 City 預設 Id: [Field class type]:Java.lang.integer Name 預設 Street 預設 4
  5. 5. (2)Using Group 預覽 > 報表群組 > 新增,新增設定如下: 一 群組欄位 屬性設定 CityGroup [Group expression] $F{City} [Min height to start new page] 60 [Group header(footer) band height] 20 Note: 在報表結構內會產生一”CityGroupHeader” 與”CityGroupFooter”,且[報表變數]會自動產生對應變數。 5
  6. 6. (3)Using variable 在 預覽 > 報表變數 > 新增,設定如下: 變數名 屬性設定 CityNumber [Variable Name] CityNumber [class type] Integer [calcuation type] System [Reset type] Group [Reset group] Citygroup [Increment type] None [Initial value expression] ($V{CityNumber} != null)?(new Integer($V{CityNumber}.intValue() + 1)):(new Integer(1)) (注意不是 variable expression) 6
  7. 7. (4)Using Parameter 在 預覽 > 報表參數 > 新增,新增設定如下: 參數名 屬性設定 BaseDir,報表之 Logo 圖 [Class type] java.lang.File 片的路徑指定。 勾選 is for prompt ReportTitle [Class type] java.lang.String 勾選 is for prompt (二)報表內文設計 (1)設計報表架構 要在報表內文加入各種物件前,先調整高度,以利配置物件: 在 預覽 > 欄,設定 Band height 7
  8. 8. 分別設定如下: Document Struct Setup Title Band:height 50 PageHeader Band:height 20 ColumnHeader Band:height 0 CityGroupHeader Band:height 20 Detailer Band:height 20 CityGroupFooter Band:height 20 ColumnFooter Band:height 0 PageFooter Band:height 40 Summary Band:height 0 8
  9. 9. (2)加入報表物件 (A)Title 欄 先取一 Frame 容器 ,並於其上放入下表所述物件: 報表物件 頁籤 屬性設定 9
  10. 10. Image 【Image】 1.在[Image expresson]加入 new File($P{BaseDir}, "via.gif") 2.[Class]選 java.io.File 【Hyper-link】 1.[hyperlink target]:self 2.[hyperlink type]:reference 3.[hyperlink reference]加入 “www.viatech.com” Text Field 【Text Field】 [evaluation time]:Now [Textfield expression]:$P{ReportTitle} 【Font】 [Font name]新細明體(中文字型即可) [PDF font name] Msung-Light [PDF Encoding] UniCNS-UCS2-H (Chinese traditional) 勾取 PDF Embedded (B)PageHeader 設定如下: 報表物件 頁籤設定 屬性設定 【common】 [backgroup] ,[Foregroup] black Rectangle [top]:5 [left]:0 [height]:15 10
  11. 11. Static text 【common】 [backgroup] black [Foregroup] white 分別設置三個: 【Font】 [Font name]新細明體(中文字型即可) ID,Name,Street [PDF font name] Msung-Light [PDF Encoding] UniCNS-UCS2-H (Chinese traditional) 勾取 PDF Embedded 【static Text】 分別填入”ID”,”姓名”,”住所街道” (C)CityGroupHeader 設定如下: 報表物件 頁籤 屬性設定 【common】 1.[bg],[fg]: 銀色 Rectangle TextField 【common】 勾選[transparent] (下方圖層看顯現出來) 【Font】 [Font name]新細明體(中文字型即可) [PDF font name] Msung-Light [PDF Encoding] UniCNS-UCS2-H (Chinese traditional) 勾取 PDF Embedded 11
  12. 12. 【TextField】 [TextField Expression]: " "+ String.valueOf($V{CityNumber}) + ". " + String.valueOf($F{City}) 【Common】 依序設定 top, left, height 分別為 19, 0, 1 Line (D)Detailer 報表物件 頁籤 屬性設定 TextField 【TextField】 在[Textfield expression],分別對三個 物件加入: 分別加入 $F{Id} 三個: $F{Name} id,name,str $F{Street} eet 【Font】 [Font name]新細明體(中文字型即可) [PDF font name] Msung-Light [PDF Encoding] UniCNS-UCS2-H (Chinese traditional) 勾取 PDF Embedded 【Common】 依序設定 top,left,height:19, 0, 1 Line 12
  13. 13. (E)CityGroupFooter 報表物件 頁籤 屬性設定 【common】 依序設定 top,left,height:19, 0, 1 Line Static text Count 【Static Text】加入文字 ”計數:” 【Font】 [Font name]新細明體(中文字型即可) [PDF font name] Msung-Light [PDF Encoding] UniCNS-UCS2-H (Chinese traditional) 勾取 PDF Embedded Text field 【Text Field】[Textfield expression] 加入 $V{CityGroup_COUNT} 【Font】 [Font name]新細明體(中文字型即可) [PDF font name] Msung-Light [PDF Encoding] UniCNS-UCS2-H (Chinese traditional) 勾取 PDF Embedded (F)PageFooter 13
  14. 14. 報表物件 頁籤 屬性設定 【Common】 分別設定 Top,Left,Height:10, 0, 1 Line TextField 【Text Field】1. [Evaluation Time] now 2. [Textfield expression] "Page " + String.valueOf($V{PAGE_NUMBER}) + " of" TextField 【TextField】 1.[Evaluation time] Report 2.[TextField expression] " " + String.valueOf($V{PAGE_NUMBER}) TextField 【TextField】 1. [Evaluation time] Now 2. [Textfield expression] “關鍵名單” 註:上述三者 [Font name]新細明體(中文字型即可) [PDF font name] Msung-Light 的【Font】 [PDF Encoding] UniCNS-UCS2-H (Chinese traditional) 勾取 PDF Embedded 設計完後,大致對照如下圖: 14
  15. 15. (3)編譯 JRxml 檔 將設計好的 JRxml 檔作編譯,建立 > 編譯,編譯後的檔案(jasper),會 放置於同目錄內。此外,亦可於 ireport 直接執行報表(先決定要預覽的 format) 15
  16. 16. 參.在網頁上執行 簡介 JasperReport API 該架構圖主要呈現與報表輸出有關的 API,其由上而下的順序,使得以瞭解 報表中介過程中所會使用的程式介面為何,如此,將有助程式員之程式的開發。 下方會展示不同格式文件的輸出,將會用到架構圖上的所列 API。 各項類別的內容可參閱官方 JasperRepor API http://jasperreports.sourceforge.net/api/index.html。 jasperReport 類別 功能說明 JasperCompilerManager 負責將*.jrxml 編譯成*.jasper or JasperReport 物 件。 JasperFillManger 負責將*.jasper 轉製成*.jrprint or JasperPrint 物 件。 JasperRunManager 負責將*.jasper 轉製成所需輸出格式的文件。 Jr***Export 負責將*.jrprint or JasperPrint 物件轉製成所需輸 包括有: 出格式的文件。 JexcelApiExporter JRCvsExporter JRHtmlExporter JRPdfExporter JRRtfExporter 等 JasperExportManager 負責將*.jrprint or JasperPrint 物件轉製成所需輸 出格式的文件。 JasperPrintManager 負責將*.jrprint or JasperPrint 物件列印出。 16
  17. 17. JasperReport 輸出相關 API 架構圖 *.Jrxml 檔 JasperCompilerManager Class 之方法 JapserReport 物件 *.Jasper 檔 JasperFillManger Class 之方法 *.Jrprint 檔 JasperPrint 物件 JasperRunManager Class Jr***Export 之方法 Class 之方法 JasperExportManager Class 之方法 不同文件格式輸出檔 (如 Html, Rtf, Pdf 等) JasperPrintManager Class 之方法 文 件 17
  18. 18. 程式撰寫 HTML 輸出 Out_demo/HtmlOutput.jsp <%-- HTML 文件輸出(在同一目錄下) --%> <%@ page contentType="text/html; charset=Big5" %> <%@ page import="datasource.*" %> <%@ page import="net.sf.jasperreports.engine.*" %> <%@ page import="net.sf.jasperreports.engine.util.*" %> <%@ page import="net.sf.jasperreports.engine.export.*" %> <%@ page import="net.sf.jasperreports.j2ee.servlets.*" %> <%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <% //取得並讀取 jasper 檔,以取得 jasperReport 物件 File reportFile = new File(application.getRealPath("/out_demo/reports/PrintReport.jasper"));//注意*.jasper 之路徑 if (!reportFile.exists()) throw new JRRuntimeException("File PrintReport.jasper not found. The report design must be compiled first."); JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath()); //設定報表參數 Map parameters = new HashMap(); parameters.put("ReportTitle", "地址表列"); parameters.put("BaseDir", reportFile.getParentFile()); //取得 jasperPrint 物件,但並未實際產生列表檔 JasperPrint jasperPrint = JasperFillManager.fillReport( jasperReport, 18
  19. 19. parameters, new WebappDataSource() ); JRHtmlExporter exporter = new JRHtmlExporter(); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);//指定要輸 入的列表檔 File destFile = new File(reportFile.getParent(), jasperPrint.getName() + ".Html"); exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());//指定輸出名稱 //*****可在輸出的 html 檔內加入一些文字,包括:檔頭、頁間、檔尾。**** // exporter.setParameter(JRHtmlExporterParameter.HTML_HEADER, "hello amos"); // exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, "mary is good"); // exporter.setParameter(JRHtmlExporterParameter.HTML_FOOTER, "life is dream"); exporter.exportReport();//執行 %> <html> <body> 已成功輸出一個 html 檔! </body> </html> 19
  20. 20. HTML 呈現 Out_demo/HtmlShow.jsp <%-- Html 文件呈現(在同一目錄下) --%> <%@ page contentType="text/html; charset=Big5" %> <%@ page import="datasource.*" %> <%@ page import="net.sf.jasperreports.engine.*" %> <%@ page import="net.sf.jasperreports.engine.util.*" %> <%@ page import="net.sf.jasperreports.engine.export.*" %> <%@ page import="net.sf.jasperreports.j2ee.servlets.*" %> <%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <% //取得並讀取 jasper 檔,以取得 jasperReport 物件 File reportFile = new File(application.getRealPath("/out_demo/reports/PrintReport.jasper")); 20
  21. 21. if (!reportFile.exists()) throw new JRRuntimeException("File PrintReport.jasper not found. The report design must be compiled first."); JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath()); //設定報表參數 Map parameters = new HashMap(); parameters.put("ReportTitle", "地址表列"); parameters.put("BaseDir", reportFile.getParentFile()); //取得 jasperPrint 物件,但並未實際產生列表檔 JasperPrint jasperPrint = JasperFillManager.fillReport( jasperReport, parameters, new WebappDataSource() ); JRHtmlExporter exporter = new JRHtmlExporter(); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);//指定要輸 入的列表檔 File destFile = new File(reportFile.getParent(), jasperPrint.getName() + ".Html"); exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());//指定輸出名稱 //******非常重要的功能 分頁 指定 pageIndex 可使 scroll_bar auto_move************* : ; , // exporter.setParameter(JRExporterParameter.PAGE_INDEX, new Integer(pageIndex)); exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);//輸出文件於 response 網頁上 //指定文件圖檔部份,無設此者,僅呈現文字 exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../servlets/image?image="); exporter.exportReport();//執行 %> <html> <head> 21
  22. 22. <title> 已成功呈現一個 html 檔! </title> </head> <body> 已成功輸出一個 html 檔! </body> </html> HTML 預覽與列印 預覽 Out_demo/HtmlPrint.jsp <%-- 針對 HTML 的列印需求,包括"預覽列印"、"列印單頁報表"、"列印全部報表" --%> <%@ page contentType="text/html; charset=big5" %> <%@ page import="datasource.*" %> <%@ page import="net.sf.jasperreports.engine.*" %> <%@ page import="net.sf.jasperreports.engine.util.*" %> <%@ page import="net.sf.jasperreports.engine.export.*" %> <%@ page import="net.sf.jasperreports.j2ee.servlets.*" %> <%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <% JasperPrint jasperPrint=null; jasperPrint=(JasperPrint)session.getAttribute("ReportDuc"); if (request.getParameter("reload") != null || jasperPrint == null) { File reportFile = new File(application.getRealPath("/out_demo/reports/PrintReport.jasper")); if (!reportFile.exists()) 22
  23. 23. throw new JRRuntimeException("File PrintReport.jasper not found. The report design must be compiled first."); JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath()); Map parameters = new HashMap(); parameters.put("ReportTitle", "列印名單"); parameters.put("BaseDir", reportFile.getParentFile()); jasperPrint = JasperFillManager.fillReport( jasperReport, parameters, new WebappDataSource() ); session.setAttribute("ReportDuc", jasperPrint); } JRHtmlExporter exporter = new JRHtmlExporter(); //*********************換頁設計 start*********************************/ int pageIndex = 0; int lastPageIndex = 0; if (jasperPrint.getPages() != null) { lastPageIndex = jasperPrint.getPages().size() - 1; } String pageStr = request.getParameter("page"); try { pageIndex = Integer.parseInt(pageStr); } catch(Exception e) { e.printStackTrace(); } if (pageIndex < 0) { 23
  24. 24. pageIndex = 0; } if (pageIndex > lastPageIndex) { pageIndex = lastPageIndex; } //*********************換頁設計 end*********************************/ StringBuffer sbuffer = new StringBuffer(); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_STRING_BUFFER, sbuffer); exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../servlets/image?image="); exporter.setParameter(JRExporterParameter.PAGE_INDEX, new Integer(pageIndex)); exporter.exportReport(); %> <html> <head> <style type="text/css"> a {text-decoration: none} </style> <meta http-equiv="Content-Type" content="text/html; charset=big5"></head> <body text="#000000" link="#000000" alink="#000000" vlink="#000000" > <table width="100%" border="0" align="center"> <tr> <td width="10%">&nbsp;</td> <td width="82%"><hr size="1" color="#000000"> <strong></strong></td> <td width="8%"><font size="4">列印</font></td> </tr> <tr> <td>&nbsp;</td> <td> <font size="2"><table width="100%" border="0"> <tr> 24
  25. 25. <td width="15%"><a href="print/printall.jsp" target="_blank">印報表<font size="2">全</font></a><font color="#3366FF" size="4"><strong>|</strong></font> </td> <td width="1%">&nbsp;</td> <td width="15%"><div onClick="window.print()" style="cursor:hand"><font color="#0033FF">印網頁</font><font color="#3366FF" size="4"><strong>|</strong></font></div></td> <script> function isprint() { if(confirm("列印此頁?")) window.open("print/printThis.jsp?index=<%=pageIndex%>","列印我"); } </script> <td width="15%"><div onClick="isprint()" style="cursor:hand">印本頁<font color="#3366FF" size="4"><strong>|</strong></font></div></td> <td width="10%"><a href="HtmlPrint.jsp?page=0">首頁</a><font color="#3366FF" size="4"><strong>|</strong></font></td> <td width="10%"><a href="HtmlPrint.jsp?page=<%=pageIndex - 1%>">上頁</a><font color="#3366FF" size="4"><strong>|</strong></font></td> <td width="10%"><a href="HtmlPrint.jsp?page=<%=pageIndex + 1%>">下頁</a><font color="#3366FF" size="4"><strong>|</strong></font></td> <td width="10%"><a href="HtmlPrint.jsp?page=<%=lastPageIndex%>">尾頁</a><font color="#3366FF" size="4"><strong>|</strong></font></td> <td width="15%"><a href="HtmlPrint.jsp?reload=true">重新下載</a><font color="#3366FF" size="4"><strong>|</strong></font></td> </tr> </table></font> </td> <td>示範</td> </tr> </table> 25
  26. 26. <hr> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td width="30%" height="33">&nbsp;</td> <td align="center"> <%=sbuffer.toString()%> </td> <td width="27%">&nbsp;</td> </tr> </table> </body> </html> 列印 <% //out_demoprintprintThis.jsp String aa=request.getParameter("index"); JasperPrint jasperPrint = (JasperPrint)session.getAttribute("ReportDuc"); JasperPrintManager.printPage(jasperPrint,Integer.parseInt(aa),false); %> //out_demoprintprintall.jsp <% JasperPrint jasperPrint = (JasperPrint)session.getAttribute("ReportDuc"); JasperPrintManager.printReport(jasperPrint,true); %> 其它輸出格式 包括有受歡迎的 pdf,以及 xls、csv、rtf 等。 PDF 輸出 程式碼:Out_demo/PdfShow.jsp 26
  27. 27. 在 Web.xml 設定,使用 jsp-file 做報表元件的話,於 web.xml 加上下述 <servlet> <servlet-name>pdf</servlet-name> <jsp-file>out_demo/PdfShow.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>pdf</servlet-name> <url-pattern>servlets/PdfShow.pdf</url-pattern> </servlet-mapping> 此外,如果是使用 servlet 做報表元件的話,於 web.xml 加上下述 <servlet> <servlet-name>pdfreport</servlet-name> <servlet-class>out_demo/PdfShow.jsp</servlet-class> </servlet> <servlet-mapping> <servlet-name> pdfreport </servlet-name> <url-pattern>serlvers/PdfShow.pdf</url-pattern> </servlet-mapping> 27
  28. 28. Excel 輸出 程式碼:Out_demo/ExcelShow.jsp 圖表 1 加這段文字於 web.xml <servlet> <servlet-name>csvreport</servlet-name> <jsp-file>out_demo/CsvShow.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name> csvreport </servlet-name> <url-pattern>servlets/CsvShow.csv</url-pattern> </servlet-mapping> Xls 輸出 程式碼:Out_demo/XlsShow.jsp 28
  29. 29. 加這段文字於 web.xml <servlet> <servlet-name>xslreport</servlet-name> <jsp-file>out_demo/XslShow.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>xslreport</servlet-name> <url-pattern> servlets/ XslShow.xls </url-pattern> </servlet-mapping> RTF 輸出 程式碼:Out_demo/RtfShow.jsp 29
  30. 30. 加這段文字於 web.xml <servlet> <servlet-name>rtfreport</servlet-name> <jsp-file>out_demo/Rtfshow.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>rtfreport</servlet-name> <url-pattern>servlets/Rtfshow.rtf</url-pattern> </servlet-mapping> 參考文件 1. 製作 iReport 的動畫教學:Tutorials http://jasperforge.org/sf/wiki/do/viewPage/projects.ireport/wiki/HomePage 2. http://www.cjsdn.net/post/view?bid=29&id=103643&sty=3:初階 user 可參考 仍有許多不完美的地方,請多指教!!謝謝 From Amos 30

×