六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 97|回复: 0

根据birt engine api开发,显示报表

[复制链接]

升级  54%

35

主题

35

主题

35

主题

秀才

Rank: 2

积分
131
 楼主| 发表于 2013-2-7 19:23:36 | 显示全部楼层 |阅读模式
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;}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表