利用BIRT API生成报表rptdesign文件
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
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(); } }*/ } } |
