现在的位置: 首页 > 综合 > 正文

JSP中调用Ireport报表文件并展示效果源码

2018年02月09日 ⁄ 综合 ⁄ 共 1835字 ⁄ 字号 评论关闭

<%@ page language="java" contentType="text/html; charset=UTF-8"
      pageEncoding="UTF-8"%>
<%@ page
      import="java.io.*,
              net.sf.jasperreports.engine.*,
              net.sf.jasperreports.engine.util.*,
             java.util.*,java.sql.*,
             net.sf.jasperreports.engine.export.*"%>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Insert title here</title>
 </head>
 <body>
 

 <%

    //参数获取

     String deptId =(String) request.getParameter("deptId");
     String xmlxdm =(String) request.getParameter("xmlxdm");
     String planYear =(String) request.getParameter("planYear");

  

//调用报表模版

     File reportFile = new File(application.getRealPath("/report/RoadPlanExportExcel.jasper"));

     JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportFile.getPath());

//向报表传递参数

     Map<String,Object> parameters = new HashMap<String,Object>();
     parameters.put("deptId", deptId);
     parameters.put("xmlxdm", xmlxdm);
     parameters.put("planYear", planYear);

     parameters.put("title", planYear+"XXXXXX项目表--");

//JDBC连接数据源

     Connection conn =null;
     try{
     Class.forName("oracle.jdbc.driver.OracleDriver");
     conn = DriverManager.getConnection(
             "jdbc:oracle:thin:@127.0.0.1:1521:XXX", "XXXX", "XXXX");
     JasperPrint jasperPrint = JasperFillManager.fillReport(
             jasperReport, parameters, conn);
     JRHtmlExporter exporter = new JRHtmlExporter();
     
     exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
     exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
     
     exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
     exporter.exportReport();
     out.flush();    
     conn.close();
     }catch(Exception e){
    if (null != conn) conn.close();
    e.printStackTrace();
     }finally{
    if (null != conn) conn.close();
     }
 %>
 </body>
 </html>

抱歉!评论已关闭.