/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.plugin.report.generate.service.text; import java.io.InputStream; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.ewcms.plugin.BaseRuntimeException; import com.ewcms.plugin.report.model.TextReport.Type; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.engine.xml.JRXmlLoader; /** * 抽象报表引擎 * * @author 吴智俊 */ public abstract class BaseTextGenerateServiceable { private static final Logger logger = LoggerFactory.getLogger(BaseTextGenerateServiceable.class); public byte[] export(InputStream in, Type type, Map<String, Object> parameters, HttpServletResponse response,HttpServletRequest request) { try { JasperDesign design = JRXmlLoader.load(in); JasperReport jasperReport = JasperCompileManager.compileReport(design); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters); return generate(jasperPrint, response, request); } catch (Exception e) { logger.error("Base Text Generate Exception", e); throw new BaseRuntimeException(e.toString()); } } /** * 实现报表类型实例 * * @param out * @param jasperPrint */ protected abstract byte[] generate(JasperPrint jasperPrint, HttpServletResponse response, HttpServletRequest request); }