利用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();
}
}*/

}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值