2012-01-19 82 views
2

我正在与Java一起工作在extjs 4.0.2a上。我正在使用一些与Java的框架,如Hibernate/JPA和Spring。现在我想使用Jasper Report设计工具,即iReport以不同格式(.xls,.pdf)生成我的报告等。我熟悉iReport。我使用jdbc连接以.jrxml和.jasper格式生成了iReport文件。iReport与extjs4.0.2a和Java + Spring +休眠集成

现在我想将我生成的报告与JAVA集成起来,以便我可以以.pdf或.xls格式获取报告。当我点击pdf图标时,我可以下载以.pdf格式生成的报告。

我使用的是Ext js 4.0.2a mvc架构。任何人有想法如何继续可以帮助我

+0

可能重复:http://stackoverflow.com/questions/6365045/spring-mvc-3-0-jasper-reports-4-directing-html-reports-in-browser和HTTP ://stackoverflow.com/questions/7567660/inetgrating-ireportwith-large-no-of-sub-reports-with-spring-mvc&http://stackoverflow.com/questions/8239838/whats-the-best-way -to-show-html-reports-generated-by-jasperreport-in-a-jsp –

+0

另一个链接:http://stackoverflow.com/questions/4446666/how-to-set-up-jasper-reports-in-春季子报告 –

回答

0

我对这个问题的解决方案很简单。当你使用ExtJs时,我认为你的控制器是用JavaScript编写的。

  1. 做Java服务器的请求,以创建您的PDF,XLS报告,无论
  2. 保存在会议的报告一键(可以在mileseconds的时间)
  3. 返回的关键,视图并打开一个新的窗口,向服务器请求您的报告

新的Windows应该包含这样http://localhost:8080/myApplication/report?key=312312313

一个URL如果你想下载到XSL你CA ñ试试这个:

private void exportToExcel(HttpServletResponse resp, JasperPrint jasperPrint) throws IOException { 
    String reportfilename = tagreport("file") + "repor.xls"; 
    JExcelApiExporter exporterXLS = new JExcelApiExporter(); 

    exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT,jasperPrint); 
    exporterXLS.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE,Boolean.TRUE); 
    exporterXLS.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE); 
    exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE); 
    exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, resp.getOutputStream()); 
    resp.setHeader("Content-Disposition", "inline;filename="+ reportfilename); 
    resp.setContentType("application/vnd.ms-excel"); 
    try { 
     exporterXLS.exportReport(); 
    } catch (JRException e) { 
     e.printStackTrace(); 
    } 
} 
+0

感谢Henrique我能够使用jasper报告生成我的xls报告。现在当我点击导出按钮时,我可以生成excel报告文件。但我无法下载它。我正在使用** Ext.Ajax.request({task/GetTaskReportPDF.action}}}在头文件中的tomcat控制台上生成服务器请求以生成报告我正在获取** intent-处置\t附件 Content-长内容类型\t应用程序/ vnd.ms - Excel中 日期\t周五,2012 GMT 10点00分49秒服务器 阿帕奇\t - 狼/ 1.1 **所以我在做什么错误,不允许01月20日下载弹出来。 。 –

+0

我编辑了我的答案,检查是否解决你的问题! –

+0

感谢Henrique它的工作原理。现在我想为我的pdf报告生成相同的下载窗口。我做了更改为** JRPdfExporter exporterPDF = new JRPdfExporter(); exporterPDF.setParameter(JRExporterParameter.JASPER_PRINT,jasperprint); exporterPDF.setParameter(JRExporterParameter.OUTPUT_STREAM,response.getOutputStream()); response.setHeader(“Content-Disposition”,“inline; filename =”+ reportfileName); response.setContentType(“application/pdf”); exporterPDF.exportReport(); **但它不会给我下载窗口来保存或打开生成的pdf报告 –