当前位置: 代码迷 >> Web前端 >> web中施用jasperreport
  详细解决方案

web中施用jasperreport

热度:224   发布时间:2012-09-02 21:00:34.0
web中应用jasperreport
在web中使用jasperreport 要导入的包:
           jasperreports-4.5.0.jar
           js_activation-1.1.jar
           iText-2.1.7.jar
           iTextAsian.jar
           groovy-all-1.7.5.jar
           commons-beanutils-1.8.2.jar
           commons-digester-1.7.jar
           commons-collections-3.2.1.jar
           poi-3.7-20101029.jar

代码:
   方法1:
        String filename = ServletActionContext.getServletContext().
                           getRealPath("/ireport/report5_Javabean.jasper");
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("SQLSTR", "select * from syz");
        Collection<Syz> collection = service.findAll();
        JRDataSource datasource = new JRBeanCollectionDataSource(collection);
        ServletOutputStream out = response.getOutputStream();
        //加载jasper文件,生成JasperReport实例 ;
        JasperReport report = (JasperReport) JRLoader.loadObject(filename);
        //填充报表,生成JasperPrint实例
        JasperPrint print = JasperFillManager.fillReport(report,map,datasource);
        //JRXlsExporter是excel导出器,JRPdfExporter 是pdf导出器,其他类型以此类推
        JRAbstractExporter exporter = new JRXlsExporter();
        //导出器设置参数
        exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
        exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out);
        //导出
        exporter.exportReport();

   方法2:
        byte[] b = null ;
        response.setContentType("application/pdf");
        response.setHeader("Content-Disposition","filename="+
                 java.net.URLEncoder.encode("Syz_PDF"+new SimpleDateFormat("yyyyMMddHHmmssSS").format(new Date()), "UTF-8") 
    + ".PDF");
     //转换成pdf,如果是html,转换后直接response.sendRedirect()
        b = JasperRunManager.runReportToPdf(filename, map, datasource);
        out.write(b);
        out.flush();
        out.close();

  相关解决方案