[原创]BIRT2.3中的数据导出功能扩展应用

在BIRT2.3版本之前,BIRT Viewer只支持默认的CSV格式的数据导出,用户很难自定义导出格式和一些导出的逻辑,很难扩展化。从BIRT2.3之后,总算加入了对数据导出功能的扩展。用户可以很方便的自定义导出格式,可以在代码中添加自已的处理逻辑。所有这些,都基于BIRT提供了一个新的Extension Point--"org.eclipse.birt.report.engine.dataExtraction"。

BIRT提供了一个默认的实现,导出为CSV格式。用户完全可以基于这个实现的代码,实现自已的导出格式,如导出为XML格式,甚至可以保存到数据库。

下面我将给出一个大致的实现步骤:

1) 在eclipse下,新建plugin project。
2) 修改plugin.xml,添加extenion point定义。举例如下:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>
<extension
point="org.eclipse.birt.report.engine.dataExtraction">
<dataExtraction
id = "org.eclipse.birt.report.engine.dataextraction.xml"
name = "XML"
format = "xml"
mimeType = "text/xml"
class = "org.eclipse.birt.report.engine.dataextraction.xml.DataExtractionImpl"/>
</extension>
</plugin>

注意,id, name, format,mimeType, class都是必须的。

3) 实现IDataExtractionExtension接口
该接口主要有三个方法:
public void initilize( IReportContext context, IDataExtractionOption option ) throws BirtException
public void output( IExtractionResults results ) throws BirtException
public void release( )

initialize方法会传入报表相关的IReportContext对象,如果需要获取报表相应的信息,可以通过该对象。

IDataExtractionOption对象是从BIRT viewer传入的一些参数。
如:
(Map) this.option.getOption( "birt.viewer.parameters" )--得到viewer相关的参数(包含用户在url上传入的自定义参数)
(Locale)this.option.getOption("birt.viewer.locale")--得到locale信息
(String[])this.option.getOption("birt.viewer.export.columns")--得到选中的columns。

具体的实现逻辑可以在output方法里实现,应该非常容易理解。

4) 最后一步当然是发布了,非常简单,打包成plugin,然后放到WEB-INF/platform/plugins下就可以了,注意BIRT已经有了一个org.eclipse.birt.report.engine.dataextraction.csv.jar的plugin,和它放一起就行了。

5) 打开页面,在export dialog里就会看到多了一个XML的导出选项了。

好了,就说这些了~~~~~大家可以自已去尝试一下。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值