JBOSS 點(diǎn)滴

          豐豐的博客

          IREPORT安裝、使用

          一。安裝ireport,到iReport的官方網(wǎng)站:http://ireport.sourceforge.net/去下載。
          二。安裝完后制作report模板文件:
             1.新建一個文件:檔案-->開啟新檔
             2.配置數(shù)據(jù)源:data-->連接資源來源-->new-->DataBase JDBC connection,輸入名稱,選擇驅(qū)動,填寫url.
             3.插入數(shù)據(jù),選擇data-->報(bào)表查詢,在這里寫要查詢的sql,寫好后會在field里自動生成查后的列;
              4.拖動field到detail里。這樣就制作完成了。
              5.建立--->編譯會在ireport的安裝目錄下生成.jasper結(jié)尾的文件。這就是我們需要的模板文件。
             很簡單的一個報(bào)表例子。
          三。寫jsp文件: (偶用的是IREPORT300,包請?jiān)贗REPORT300中l(wèi)ib里找吧)
             1。導(dǎo)入需要的降包:itext-1.3.1.jar,iTextAsian.jar,jasperreports-1.0.1.jar,poi-2.0-final-20040126.jar,classes12.jar。注意:不要是classes12.zip,我導(dǎo)入classes12.zip就是報(bào)找不到OracleDriver錯誤。
             2.寫jsp文件:
          Java代碼 復(fù)制代碼 收藏代碼
          1. <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>   
          2. <%@ page import="java.sql.*"%>   
          3. <%@ page import="java.io.*"%>   
          4. <%@ page import="net.sf.jasperreports.engine.JasperFillManager"%>   
          5. <%@ page import="net.sf.jasperreports.engine.JasperPrint"%>   
          6. <%@ page import="net.sf.jasperreports.engine.JRException"%>   
          7. <%@ page import="net.sf.jasperreports.engine.JRExporterParameter"%>   
          8. <%@ page import="net.sf.jasperreports.engine.export.JRXlsExporterParameter"%>   
          9. <%@ page import="net.sf.jasperreports.engine.export.JRXlsExporter"%>   
          10.   
          11. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">   
          12. <html>   
          13.     <body>   
          14.   
          15.         <%   
          16.             String Name = "aa";//初始化變量   
          17.             Class.forName("oracle.jdbc.driver.OracleDriver");   
          18.             Connection conn= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","lshh","lshh");   
          19.             //裝載jasper文件application   
          20.             File exe_rpt = new File(application.getRealPath("/test.jasper"));   
          21.             //rowid就是iReport的變量$P{rowid}的名稱   
          22.             Map parameters = new HashMap();   
          23.             parameters.put("Name", Name);   
          24.             try {   
          25.                 // fill   
          26.                 JasperPrint jasperPrint = JasperFillManager.fillReport(exe_rpt   
          27.                 .getPath(), parameters, conn);   
          28.                 // excel輸出   
          29.                 ByteArrayOutputStream oStream = new ByteArrayOutputStream();   
          30.                 JRXlsExporter exporter = new JRXlsExporter();   
          31.                 exporter.setParameter(JRExporterParameter.JASPER_PRINT,   
          32.                 jasperPrint);   
          33.                 exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,   
          34.                 oStream);   
          35.                 exporter.setParameter(   
          36.                         JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,   
          37.                         Boolean.TRUE); // 刪除記錄最下面的空行   
          38.                 exporter.setParameter(   
          39.                 JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,   
          40.                 Boolean.FALSE);// 刪除多余的ColumnHeader   
          41.                 exporter.setParameter(   
          42.                 JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,   
          43.                 Boolean.FALSE);// 顯示邊框   
          44.                 exporter.exportReport();   
          45.   
          46.                 byte[] bytes = oStream.toByteArray();   
          47.   
          48.                 if (bytes != null && bytes.length > 0) {   
          49.                     response.reset();   
          50.                     response.setContentType("application/vnd.ms-excel");   
          51.                     response.setContentLength(bytes.length);   
          52.                     ServletOutputStream ouputStream = response   
          53.                     .getOutputStream();   
          54.                     ouputStream.write(bytes, 0, bytes.length);   
          55.                     ouputStream.flush();   
          56.                     ouputStream.close();   
          57.   
          58.                 } else {   
          59.                     out.print("bytes were null!");   
          60.                 }   
          61.                 conn.close();   
          62.             } catch (JRException ex) {   
          63.                 out.print("Jasper Output Error:" + ex.getMessage());   
          64.             }   
          65.         %>   
          66.   
          67.   
          68.     </body>   
          69. </html>  
          強(qiáng)烈強(qiáng)調(diào)一句,如果你要在線顯示PDF,excel直接把response.setHeader("Content-disposition", "attachment; filename="     + fileName);
          改為:response.setHeader("Content-disposition","inline; filename=MyExcel.pdf");     就行了,
          再強(qiáng)調(diào)一點(diǎn),首先確定一定要安裝adobe reader閱讀器啊(別說,我就因?yàn)闆]裝這個,折騰了二天,呵呵。。。)

          升級處理:
          需要包:iText-2.1.7.jar、iTextAsian.jar、jasperreports-5.5.0.jar、poi-3.9-20121203.jar
           

          posted on 2012-10-25 16:40 半導(dǎo)體 閱讀(443) 評論(0)  編輯  收藏 所屬分類: 報(bào)表

          主站蜘蛛池模板: 汽车| 曲周县| 栾川县| 洪雅县| 汨罗市| 广汉市| 龙门县| 吐鲁番市| 红安县| 青铜峡市| 鸡泽县| 泰兴市| 龙口市| 上蔡县| 肥城市| 休宁县| 视频| 高邑县| 洱源县| 洛川县| 桃江县| 芜湖县| 盖州市| 宁强县| 绩溪县| 台江县| 北票市| 怀集县| 隆林| 灵宝市| 琼中| 双辽市| 安化县| 同仁县| 庆安县| 清新县| 张家界市| 台北市| 河曲县| 呼玛县| 湖州市|