2012-01-19 117 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報告 –