我的js函数/报告调用函数

function getShipServiceReport(ship_no,to_date, fromDate){ 
     var shipNos=document.getElementById(ship_no).value; 
     var toDate=document.getElementById(to_date).value; 
     var fromDate=document.getElementById(fromDate).value; 
     var fileType=$('input[name="optionsRadios"]:checked').val(); 
     var ajaxURL = "getShipServiceReportRT.do?ship_no="+shipNos+"&to_date="+toDate+"&fileType="+fileType+"&fromDatee="+fromDate;   
     window.open(ajaxURL,'_blank'); 
//$("#documentArea.html('<iframe src='"+ajaxURL+"' frameBorder='0' style='height:1200px;width:100%;'></iframe>')"); 

    } 

的Java Action类

public void getShipServiceReport()throws JRException, ServletException, IOException{ 
    Map<String, Object> parameters = new HashMap<String, Object>(); 
    parameters.put("shipNo", ship_no); 
    parameters.put("fromDate", fromDatee); 
    parameters.put("toDate", to_date); 
    System.out.println("Parameter"+ship_no); 
    String filename="shipServiceInformation.jasper"; 
    String reportType=fileType; 
    showReport("",parameters,filename,reportType); 

    } 

public static void showReport(String key, Map<String, Object> parameters, String filename, String reportType) 
     throws JRException, ServletException, IOException { 
    Connection connection = null; 
    HttpServletResponse response = ServletActionContext.getResponse(); 
    String outputFileName = "report_" + key; 

    connection = DBC.openCon(); 

    ServletContext context = ServletActionContext.getServletContext(); 
    String path = context.getRealPath("/"); 

    JasperPrint jasperPrint = JasperFillManager.fillReport(path + "jasper" + "/" + filename, parameters, 
      connection); 
    OutputStream ouputStream = response.getOutputStream(); 
    JRExporter exporter = null; 

    if ("pdf".equalsIgnoreCase(reportType)) { 

     response.setContentType("application/pdf"); 
     response.setHeader("Content-disposition", "inline;filename=" + outputFileName + "." + reportType); 
     exporter = new JRPdfExporter(); 
     exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
     exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream); 
     System.out.println("Report Created"); 
    } else if ("rtf".equalsIgnoreCase(reportType)) { 

     response.setContentType("application/rtf"); 
     response.setHeader("Content-disposition", "inline;filename=" + outputFileName + "." + reportType); 
     exporter = new JRRtfExporter(); 
     exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
     exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream); 

    } else if ("html".equalsIgnoreCase(reportType)) { 

     exporter = new JRHtmlExporter(); 
     exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
     exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream); 

    } else if ("xls".equalsIgnoreCase(reportType)) { 

     response.setContentType("application/xls"); 
     response.setHeader("Content-disposition", "inline;filename=" + outputFileName + "." + reportType); 
     exporter = new JRXlsExporter(); 
     exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
     exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream); 

    } else if ("csv".equalsIgnoreCase(reportType)) { 

     response.setContentType("application/xls"); 
     response.setHeader("Content-disposition", "inline;filename=" + outputFileName + "." + reportType); 
     exporter = new JRCsvExporter(); 
     exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
     exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream); 
    } 

    try { 
     // JasperViewer.viewReport(jasperPrint, true); // for direct print 
     exporter.exportReport(); 

    } catch (JRException e) { 
     System.out.println(e); 
    } finally { 
     if (ouputStream != null) { 
      try { 
       ouputStream.close(); 
      } catch (Exception ex) { 
       System.out.println(ex); 
      } 
     } 
    } 
} 

只需在“window.open(ajaxURL,'_ blank');” line

$('#documentArea').html("<iframe name='your_frame_name' src='"+ajaxURL+"' height=100% width=100% > </iframe>") 

相关推荐