|
public void toreport() {ServletContext sc = ServletActionContext.getServletContext();String filePath = sc.getRealPath("/report") + "/";HttpServletResponse resp = sc.getResponse();resp.setContentType("text/html;charset=utf-8");this.birtReportEngine = getBirtEngine(sc, filePath);IReportRunnable design;try {design = birtReportEngine.openReportDesign(filePath + reportName);IRunTask runTask = birtReportEngine.createRunTask(design);HashMap paramMap = new HashMap();paramMap.put("agencyNum", agencyNum);paramMap.put("weekofyear", weekOfYear);paramMap.put("year", year);runTask.setParameterValues(paramMap);runTask.validateParameters();runTask.run(filePath + "temp.rptdocument");runTask.close();IReportDocument rptDoc = birtReportEngine.openReportDocument(filePath + "temp.rptdocument");totalPage = rptDoc.getPageCount();IRenderTask rendTask = birtReportEngine.createRenderTask(rptDoc);HTMLRenderOption options = new HTMLRenderOption();options.setHtmlPagination(true);options.setEmbeddable(true);options.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_HTML);options.setOutputStream(resp.getOutputStream());rendTask.setRenderOption(options);rendTask.setPageNumber(this.currentPage);rendTask.render();rendTask.close();} catch (Exception e) {e.printStackTrace();throw new ServletException(e);}}public static synchronized IReportEngine getBirtEngine(ServletContext sc, String path) {if (birtEngine == null) {EngineConfig config = new EngineConfig();config.setEngineHome(sc.getRealPath("/WEB-INF/platform"));config.setLogConfig(path, Level.OFF);IPlatformContext context = new PlatformServletContext(sc);config.setPlatformContext(context);try {Platform.startup(config);} catch (BirtException e) {e.printStackTrace();}IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);birtEngine = factory.createReportEngine(config);}return birtEngine;} |
|