JBOSS 点滴

丰丰的博客

IREPORT安装、使用

一。安装ireport,到iReport的官方网站:http://ireport.sourceforge.net/去下载。
二。安装完后制作report模板文件:
   1.新建一个文件:档案-->开启新档
   2.配置数据源:data-->连接资源来源-->new-->DataBase JDBC connection,输入名称,选择驱动,填写url.
   3.插入数据,选择data-->报表查询,在这里写要查询的sql,写好后会在field里自动生成查后的列;
    4.拖动field到detail里。这样就制作完成了。
    5.建立--->编译会在ireport的安装目录下生成.jasper结尾的文件。这就是我们需要的模板文件。
   很简单的一个报表例子。
三。写jsp文件: (偶用的是IREPORT300,包请在IREPORT300中lib里找吧)
   1。导入需要的降包:itext-1.3.1.jar,iTextAsian.jar,jasperreports-1.0.1.jar,poi-2.0-final-20040126.jar,classes12.jar。注意:不要是classes12.zip,我导入classes12.zip就是报找不到OracleDriver错误。
   2.写jsp文件:
Java代码 复制代码 收藏代码
  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>  
强烈强调一句,如果你要在线显示PDF,excel直接把response.setHeader("Content-disposition", "attachment; filename="     + fileName);
改为:response.setHeader("Content-disposition","inline; filename=MyExcel.pdf");     就行了,
再强调一点,首先确定一定要安装adobe reader阅读器啊(别说,我就因为没装这个,折腾了二天,呵呵。。。)

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

posted on 2012-10-25 16:40 半导体 阅读(318) 评论(0)  编辑  收藏 所属分类: 报表


只有注册用户登录后才能发表评论。


网站导航: