利用BIRT API生成表格rptdesign文件
利用BIRT API生成报表rptdesign文件
package com; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import org.eclipse.birt.core.framework.Platform; import org.eclipse.birt.report.engine.api.HTMLRenderOption; import org.eclipse.birt.report.engine.api.IReportEngine; import org.eclipse.birt.report.engine.api.IRunAndRenderTask; import org.eclipse.birt.report.model.api.CellHandle; import org.eclipse.birt.report.model.api.DesignConfig; import org.eclipse.birt.report.model.api.DesignElementHandle; import org.eclipse.birt.report.model.api.ElementFactory; import org.eclipse.birt.report.model.api.GridHandle; import org.eclipse.birt.report.model.api.IDesignEngine; import org.eclipse.birt.report.model.api.IDesignEngineFactory; import org.eclipse.birt.report.model.api.ImageHandle; import org.eclipse.birt.report.model.api.LabelHandle; import org.eclipse.birt.report.model.api.ReportDesignHandle; import org.eclipse.birt.report.model.api.RowHandle; import org.eclipse.birt.report.model.api.SessionHandle; import org.eclipse.birt.report.model.api.activity.SemanticException; import com.ibm.icu.util.ULocale; /** * Simple BIRT Design Engine API (DEAPI) demo. */ public class SimpleCreate { public static IReportEngine birtReportEngine = null; public static void main(String[] args) { birtReportEngine = BirtEngine.getBirtEngine(); try { buildReport(); } catch (IOException e) { e.printStackTrace(); } catch (SemanticException e) { e.printStackTrace(); } } static void buildReport() throws IOException, SemanticException { DesignConfig config = new DesignConfig(); config.setProperty("BIRT_HOME", Utils.BIRT_HOME); IDesignEngine engine = null; try { Platform.startup(config); IDesignEngineFactory factory = (IDesignEngineFactory) Platform .createFactoryObject(IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY); engine = factory.createDesignEngine(config); } catch (Exception ex) { ex.printStackTrace(); } SessionHandle session = engine.newSessionHandle(ULocale.ENGLISH); ReportDesignHandle design = session.createDesign(); ElementFactory efactory = design.getElementFactory(); DesignElementHandle element = efactory.newSimpleMasterPage("Page Master"); design.getMasterPages().add(element); GridHandle grid = efactory.newGridItem(null, 2, 1); design.getBody().add(grid); grid.setWidth("100%"); RowHandle row = (RowHandle) grid.getRows().get(0); ImageHandle image = efactory.newImage(null); image.setURL("\"1.jpg\""); CellHandle cell = (CellHandle) row.getCells().get(0); cell.getContent().add(image); LabelHandle label = efactory.newLabel(null); label.setText("Hello, world!"); cell = (CellHandle) row.getCells().get(1); cell.getContent().add(label); design.saveAs(Utils.SAVE_HOME + "sample.rptdesign"); design.close(); System.out.println("Finished"); /*IRunAndRenderTask task = null; OutputStream out = null; try { //task = birtReportEngine.createRunAndRenderTask(design); //task.setAppContext(contextMap); //task.setParameterValues(context.getRptParamters()); HTMLRenderOption options = new HTMLRenderOption(); options.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_HTML);// HTML options.setHtmlPagination(true); out = new FileOutputStream(new File("D:\\dev-workspace\\workspace-v4.0\\BIRT\\temp\\a.html")); // 设置输出选项 options.setOutputStream(out); task.setRenderOption(options); // 运行报表 task.run(); } catch (Exception e) { e.printStackTrace(); } finally { out.close(); if (task != null) { task.close(); } }*/ } }