在使用BIRT API前,得先配置一下BIRT的环境,也就是Birt -Runtime,使用是需要用到BIRT-runtime文件夹下的ReportEngine文件夹下的内容。
如果都准备好了,那就开始吧
先新建一个Java项目,比如JavaBirtExample,添加依赖的jar文件,因为BIRT基于OSGI的,所以org.eclipse.equinox.common这个文件是一定要的,如果要用到图表的话还需要emf对应的文件。
/**
* 使用BIRT API创建BIRT Table。
* @author 刘尧兴
* <p>2009-2-18</p>
*/
public class CreateTableReport {
public static final String BIRT_HOME = "D:/DeveloperTools/birt-runtime-2_3_1/ReportEngine";
public static void createReport() throws Exception {
DesignConfig designConfig = new DesignConfig();
designConfig.setBIRTHome(BIRT_HOME);
IDesignEngine designEngine = null;
try {
Platform.startup(designConfig);
String extensionId = IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY;
IDesignEngineFactory factory = (IDesignEngineFactory)Platform.createFactoryObject(extensionId);
designEngine = factory.createDesignEngine(designConfig);
}catch (Exception e) {
e.printStackTrace();
}
SessionHandle sessionHandle = designEngine.newSessionHandle(ULocale.CHINESE);
ReportDesignHandle designHandle = sessionHandle.createDesign();
ElementFactory elementFactory = designHandle.getElementFactory();
DesignElementHandle elementHandle = elementFactory.newSimpleMasterPage("Page Master");
designHandle.getMasterPages().add(elementHandle);
TableHandle tableHandle = elementFactory.newTableItem(null, 3, 1, 1, 0);
tableHandle.setWidth("100%");
designHandle.getBody().add(tableHandle);
List tableHeaders = tableHandle.getHeader().getContents();
RowHandle headerRowHandle = (RowHandle) tableHeaders.get(0);
CellHandle headerCellHandle = (CellHandle)headerRowHandle.getCells().get(0);
LabelHandle labelHandle = elementFactory.newLabel(null);
labelHandle.setText("姓名");
headerCellHandle.getContent().add(labelHandle);
headerCellHandle = (CellHandle)headerRowHandle.getCells().get(1);
labelHandle = elementFactory.newLabel(null);
labelHandle.setText("电话");
headerCellHandle.getContent().add(labelHandle);
headerCellHandle = (CellHandle)headerRowHandle.getCells().get(2);
labelHandle = elementFactory.newLabel(null);
labelHandle.setText("邮编");
headerCellHandle.getContent().add(labelHandle);
List tableDetails = tableHandle.getDetail().getContents();
RowHandle detailRowHandle = (RowHandle) tableDetails.get(0);
CellHandle detailCellHandle = (CellHandle)detailRowHandle.getCells().get(0);
labelHandle = elementFactory.newLabel(null);
labelHandle.setText("张三");
detailCellHandle.getContent().add(labelHandle);
detailCellHandle = (CellHandle)detailRowHandle.getCells().get(1);
labelHandle = elementFactory.newLabel(null);
labelHandle.setText("39796666");
detailCellHandle.getContent().add(labelHandle);
detailCellHandle = (CellHandle)detailRowHandle.getCells().get(2);
labelHandle = elementFactory.newLabel(null);
labelHandle.setText("343206");
detailCellHandle.getContent().add(labelHandle);
SharedStyleHandle styleHandle = elementFactory.newStyle("MyStyle");
styleHandle.getBorderTopWidth().setValue(1);
styleHandle.getBorderBottomWidth().setValue(1);
styleHandle.getBorderLeftWidth().setValue(1);
styleHandle.getBorderRightWidth().setValue(1);
styleHandle.setTextAlign(DesignChoiceConstants.TEXT_ALIGN_CENTER);
styleHandle.setProperty(IStyleModel.BORDER_TOP_STYLE_PROP, DesignChoiceConstants.LINE_STYLE_GROOVE);
styleHandle.setProperty(IStyleModel.BORDER_BOTTOM_STYLE_PROP, DesignChoiceConstants.LINE_STYLE_GROOVE);
styleHandle.setProperty(IStyleModel.BORDER_LEFT_STYLE_PROP, DesignChoiceConstants.LINE_STYLE_GROOVE);
styleHandle.setProperty(IStyleModel.BORDER_RIGHT_STYLE_PROP, DesignChoiceConstants.LINE_STYLE_GROOVE);
designHandle.getStyles().add(styleHandle);
for(int i = 0;i<tableHandle.getColumnCount();i++) {
ColumnHandle colHandle = (ColumnHandle)tableHandle.getColumns().get(i);
colHandle.setStyle(styleHandle);
}
File file = new File("c:/temp/TableReport.rptdesign");
if(!file.exists())
file.createNewFile();
designHandle.saveAs(file.toString());
designHandle.close();
System.out.println("创建成功!");
}
public static void main(String[] args) {
try {
createReport();
}catch (Exception e) {
e.printStackTrace();
}
}
}
执行之后,会在c:/temp目录下面创建一个TableReport.rptdesign文件,预览一下结果为:
- 大小: 22.6 KB
分享到:
相关推荐
总的来说,`birt api动态创建表格`这个主题涵盖了使用BIRT API在Java环境中动态生成和展示数据表格的关键技术。通过深入理解这些文件和BIRT API,开发者可以构建灵活、可扩展的报表系统,满足企业对数据可视化的需求...
**BIRT(Business Intelligence and Reporting Tools)API 详解** ...通过深入理解和熟练使用BIRT API,你可以创建出满足各种需求的高质量报表。同时,不断更新的文档和社区支持使得学习和解决问题更加容易。
《BIRT 中文指南.pdf》是一本全面介绍BIRT的中文指南,涵盖了BIRT的安装、设计环境(BIRT Designer)的使用、报表的创建和发布、数据集和数据源的管理等方面。这本指南可能还包括了一些示例和实战教程,帮助初学者...
总结来说,"Birt API Demo"是一个展示如何使用BIRT API在Java环境中动态生成Excel和报表的示例。通过这个Demo,开发者可以学习到如何初始化ReportEngine、打开报表设计、设置参数、运行报表以及导出报表等一系列操作...
在"dynamicxtab.rptdesign"这个文件中,很可能包含了用于演示或示例的BIRT报表设计,这个设计可能展示了如何使用BIRT API动态创建交叉表的代码和配置。通过打开并分析这个文件,我们可以更深入地理解上述知识点,并...
学习和掌握BIRT API的使用,不仅可以让你创建出功能丰富的报表,还能帮助你将报表系统无缝地集成到现有的应用程序中,提高工作效率,提升用户体验。深入理解和实践BIRT的API,对于任何希望在业务智能领域有所建树的...
通过阅读提供的`birt_api.CHM`和`23214513216.chm`文档,你可以详细了解到BIRT API的每个类和方法,以及具体的使用示例。这些文档是学习BIRT开发的重要参考资料,建议结合实际编码实践,逐步掌握BIRT的强大功能。 ...
6. **Chart API**:BIRT的图表组件提供了一套完整的API,用于创建各种类型的图表,并进行样式和行为的定制。 7. **Web Viewer API**:用于在Web应用程序中嵌入BIRT报表查看器。开发者可以利用此API控制报表的显示和...
在BIRT API中,我们可以使用`IReportDesign`和`IDataSource`接口创建和操作数据集。通过`IQuery`接口,可以设置SQL查询,动态插入`columnNames`中的列。例如,使用Java代码可能如下: ```java IReportRunnable ...
主要根据BIRT API来动态生成报表的pdf,word等格式,导出到某一目录,希望对做birt报表的朋友有用。
在“birt_api帮助文档”中,你可以找到关于如何使用BIRT API进行开发的详细信息。这个CHM文件(Compiled Help Manual)通常包含了API的详细参考,包括类、接口、方法和属性的描述,以及使用示例。 1. **BIRT API...
它们是BIRT官方提供的帮助文档,包含详细的API参考、示例代码和教程,可以帮助开发者快速理解和使用Birt API及Birt Chart API。 总的来说,掌握Birt API和Birt Chart API对于进行基于BIRT的项目开发至关重要。通过...
birt api 帮助文档。 对于使用birt开发报表的开发人员绝对有帮助。
6. **实例分析**:压缩包中的"birt报表实例2"可能包含了一个或多个具体的代码示例,演示了如何使用BIRT API创建和运行报表。这些实例可能会覆盖从数据源创建、报表设计、数据填充到最终的报表渲染全过程。 通过学习...
1. **Report Designer API**:这是BIRT的图形化报告设计界面所使用的API,允许开发者创建、编辑和管理报表模板。它提供了诸如添加数据源、创建数据集、插入图表和表格等操作的接口。 2. **Engine API**:在运行时,...
birt api,特不喜欢在eclipse里的help里找,所以制作了这个chm格式电子书,和jdk一样,很方便使用。
在提供的文档"Birt使用小结.doc"中,可能会包含关于如何使用BIRT API的具体示例,包括如何创建数据集、如何在报表中插入和操作数据、如何自定义样式和交互,以及如何优化性能等方面的内容。通过学习和实践这些内容,...
本资源包包含BIRT的中文和英文文档,API参考以及各种使用小技巧报表实例,非常适合想要深入学习BIRT的人士。 **中文与英文文档**: - **中文文档**:对于初学者来说,中文文档能够帮助更好地理解BIRT的各个方面,...
在本实例中,我们重点探讨如何利用BIRT报表API来创建和操作报表。 一、BIRT报表API概述 BIRT报表API是一个强大的开发接口,允许开发者通过编程方式与BIRT引擎交互,实现报表的生成、修改、运行等功能。API主要分为...
使用这个类来创建报表元素,然后通过SlotHandle类中的增加方法将它添加到设计中。ElementFactory类提供了多种方法来创建报表元素,如创建Label、Text、Image、Table等。 SessionHandle类代表报表设计的状态–一个...