ireport + jasperReport 制作报表

先介绍一下ireport
它是一款与jasperReport结合开发报表的软件,它可以用来设计要产生报表的模型,
首先使用ireport来设计报表的模型,生成的文件后缀名是.jrxml编译后.jasper
//关于ireport的介绍和使用 网上介绍很多  我就不多说了

将.jasper文件导入我们的工程,然后导入相关的jasperReport的jar包
 创建servlet文件 在doPost方法中写入如下代码
  方式一:流方式导出PDF(只给了一个数据库链接)
  Connection conn = null;
  try {
  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
  conn = DriverManager.getConnection(
  "jdbc:microsoft:sqlserver://IP:1433;DatabaseName=pubs;user=sqlusername;password=sqluserpwd");

  ServletContext servletContext =this.getServletContext();
  File reportFile = new File(servletContext.getRealPath(".jasper 编译后的报表模板文件"));
  Map parameters = new HashMap();
 
  //导出为PDF格式
  byte[] bytes =
  JasperRunManager.runReportToPdf(
  reportFile.getPath(),
  parameters,
  conn);
  response.setContentType("application/pdf");
  response.setContentLength(bytes.length);
  //使用流来讲报表内容输入到指定位置的PDF中
  ServletOutputStream ouputStream = response.getOutputStream();
  ouputStream.write(bytes, 0, bytes.length);
  ouputStream.flush();
  ouputStream.close(); 
  } catch (Exception e) {
  
       System.out.println("Exception:" + e.getMessage());
  }
               方式二:通过jasperReport内置对象来预览
                 ////////打印预览
  PrintWriter out = response.getWriter();
    JRResultSetDataSource jrds = null;
    JasperPrint jasperPrint = null;
    Map reportParams = new HashMap();
    ResultSet rs = null;
    Connection conn = null;
    Statement stmt = null;
    String sql = "select * from  tableName";
    try
     {
      //动态获取
   ServletContext servletContext = this.getServletContext();
   String realPath = servletContext.getRealPath(".jasper 编译后的报表模板文件");                       
   JasperReport jasperReport = (JasperReport)JRLoader.loadObject(realPath);    
      //建立连接
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
   conn = DriverManager.getConnection(
   "jdbc:microsoft:sqlserver://IP:1433;DatabaseName=pubs;user=userName;password=password");
                     stmt=conn.createStatement();
      rs=stmt.executeQuery(sql);
     
      jrds = new JRResultSetDataSource(rs);
      jasperPrint = JasperFillManager.fillReport(jasperReport,reportParams,jrds);
      //调出JasperViewer进行打印预览
      JasperViewer.viewReport(jasperPrint);
      System.out.println("sucess...");
     } catch(Exception e)
      {
               System.out.println("error....");
        System.out.println(e.getMessage());
      }

  out.close();
这里呢只给大家做了点简单的例子,好的东西需要你去发掘!
当初自己开始接触的时候那个苦呀,我只是想让想学它的同学们可以入门快点,不用浪费时间。
加入你有什么好的东西快快联系我,与我也分享一下吧! 呵呵!~

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/microsoft_hang/archive/2009/05/01/4138590.aspx

你可能感兴趣的:(sql,javaee,servlet,jdbc,Microsoft)