1 19 package org.openbravo.erpCommon.utility; 20 21 import java.io.IOException ; 22 import java.io.InputStream ; 23 import java.io.OutputStream ; 24 import java.util.HashMap ; 25 import java.util.Map ; 26 27 import net.sf.jasperreports.engine.JRException; 28 import net.sf.jasperreports.engine.JRExporterParameter; 29 import net.sf.jasperreports.engine.JasperCompileManager; 30 import net.sf.jasperreports.engine.JasperExportManager; 31 import net.sf.jasperreports.engine.JasperFillManager; 32 import net.sf.jasperreports.engine.JasperPrint; 33 import net.sf.jasperreports.engine.JasperReport; 34 import net.sf.jasperreports.engine.JRResultSetDataSource; 35 import net.sf.jasperreports.engine.design.JasperDesign; 36 import net.sf.jasperreports.engine.export.JExcelApiExporter; 37 import net.sf.jasperreports.engine.export.JRHtmlExporter; 38 import net.sf.jasperreports.engine.export.JRHtmlExporterParameter; 39 import net.sf.jasperreports.engine.export.JRCsvExporter; 40 import net.sf.jasperreports.engine.xml.JRXmlLoader; 41 import net.sf.jasperreports.engine.export.JExcelApiExporterParameter; 42 43 public class GridBO { 44 45 public void createHTMLReport(InputStream reportFile, 46 GridReportVO gridReportVO, OutputStream os) throws JRException, 47 IOException { 48 gridReportVO.setPagination(false); 49 JasperPrint jasperPrint = createJasperPrint(reportFile, gridReportVO); 50 JRHtmlExporter exporter = new JRHtmlExporter(); 51 Map p = new HashMap (); 52 p.put(JRHtmlExporterParameter.JASPER_PRINT, jasperPrint); 53 p.put(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE); 54 p.put(JRHtmlExporterParameter.OUTPUT_STREAM, os); 55 exporter.setParameters(p); 56 exporter.exportReport(); 57 58 59 } 60 61 private JasperDesign createJasperDesign(InputStream reportFile, 62 GridReportVO gridReportVO) throws JRException { 63 JasperDesign jasperDesign = JRXmlLoader.load(reportFile); 64 ReportDesignBO designBO = new ReportDesignBO(jasperDesign, gridReportVO); 65 designBO.define(); 66 return jasperDesign; 67 } 68 69 private JasperPrint createJasperPrint(InputStream reportFile, 70 GridReportVO gridReportVO) throws JRException, IOException { 71 JasperDesign jasperDesign = createJasperDesign(reportFile, gridReportVO); 72 JasperReport jasperReport = JasperCompileManager 73 .compileReport(jasperDesign); 74 Map parameters = new HashMap (); 75 parameters.put("BaseDir", gridReportVO.getContext()); 76 parameters.put("IS_IGNORE_PAGINATION", gridReportVO.getPagination()); 77 78 JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, 79 parameters, new JRResultSetDataSource(gridReportVO.getResultSet())); 80 return jasperPrint; 81 } 82 83 public void createPDFReport(InputStream reportFile, 84 GridReportVO gridReportVO, OutputStream os) throws JRException, 85 IOException { 86 gridReportVO.setPagination(false); 87 JasperPrint jasperPrint = createJasperPrint(reportFile, gridReportVO); 88 JasperExportManager.exportReportToPdfStream(jasperPrint, os); 89 90 } 91 92 public void createXLSReport(InputStream reportFile, 93 GridReportVO gridReportVO, OutputStream os) throws JRException, 94 IOException { 95 gridReportVO.setPagination(true); 96 JasperPrint jasperPrint = createJasperPrint(reportFile, gridReportVO); 97 JExcelApiExporter exporter = new JExcelApiExporter(); 98 Map p = new HashMap (); 99 100 p.put(JRExporterParameter.JASPER_PRINT, jasperPrint); 101 p.put(JRExporterParameter.OUTPUT_STREAM, os); 102 p.put(JExcelApiExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE); 103 p.put(JExcelApiExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE); 104 p.put(JExcelApiExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE); 105 106 exporter.setParameters(p); 107 exporter.exportReport(); 108 } 109 110 public void createCSVReport(InputStream reportFile, 111 GridReportVO gridReportVO, OutputStream os) throws JRException, 112 IOException { 113 gridReportVO.setPagination(true); 114 JasperPrint jasperPrint = createJasperPrint(reportFile, gridReportVO); 115 JRCsvExporter exporter = new JRCsvExporter(); 116 Map p = new HashMap (); 117 118 p.put(JRExporterParameter.JASPER_PRINT, jasperPrint); 119 p.put(JRExporterParameter.OUTPUT_STREAM, os); 120 121 exporter.setParameters(p); 122 exporter.exportReport(); 123 } 124 125 public void createXMLReport(InputStream reportFile, 126 GridReportVO gridReportVO, OutputStream os) throws JRException, 127 IOException { 128 gridReportVO.setPagination(true); 129 JasperPrint jasperPrint = createJasperPrint(reportFile, gridReportVO); 130 JasperExportManager.exportReportToXmlStream(jasperPrint, os); 131 } 132 133 } 134 | Popular Tags |