使用Eclipse BIRT扩展点:聚合

简介:了解 BIRT 扩展点模型,使用新的 V2.3+ 扩展模型在 BIRT 中创建基 本聚合扩展。

本文介绍商业智能和报告工具(Business Intelligence and Reporting Tools,BIRT)扩展点模型,并在 BIRT V2.3.x 和 V2.5.x 中实际创建一个聚合 扩展。在较早的 BIRT 版本中,创建聚合扩展的方式是扩展 org.eclipse.birt.data.aggregation 扩展点,这会在一个名为 Total 的全局对 象中添加一个小函数,您可以在整个报告的任何表达式中使用该函数,其工作原 理类似于脚本函数扩展点。

但是,从 BIRT V2.2 到 V2.3,聚合扩展已经发生了变化。新的方式更加复杂 ,但可以在 Aggregation Widgets 下拉列表中得到一个不错的聚合,还为参数和 表达式提供了漂亮的文本框。当创建此扩展时,可以在您的表中以列绑定的形式 访问结果。

从总体上看,新的聚合扩展点包含一个对象,该对象是 IAggregationFactory 接口的扩展。可以在此接口中重载方法来完成 3 项操作:

初始化您的工厂(在构造函数中)

提供由工厂提供的一组聚合(以列表形式提供,包含聚合对象的实际实例)

返回聚合对象的单一实例

聚合的每个实例都需要实现 IAggrFunction 接口。需要实现许多含义明显的 方法,比如 getName、getDataType 和 getParmaeterDefn,还需要实现其他含义 不太明显的方法。例如,getNumberOfPasses() 和 getType() 方法是相关的。 getType() 方法制定此聚合器的执行方式和类型。有两种聚合类型: SUMMARY_AGGR 表示只为摘要计算该聚合(比如表的表头或表尾),RUNNING_AGGR 表示为表中的每一行或表尾计算聚合。getNumberOfPasses() 方法显示获得结果 所需的 pass 数。所有基于评级的聚合器,比如 TopNpercent、PercentSum 和 Percentile,都会返回值 2,其余聚合器返回值 1。

IAggrFunction 接口的实际实现必须返回其 newAccumulator() 方法中的 Accumulator 类的一个扩展。Accumulator 负责执行实际的计算。有一些默认方 法需要重载,最重要的是 onRow(),表中的每一行都需要调用该方法。使用此方 法,您可以解析函数的参数并执行计算。对于 SUM,可以添加到某个已存储的数 字;对于 ave,既可以保存到某个列表中进行存储,也可以添加到一个累计总计 并跟踪调用次数。无论您如何执行计算,实际计算都需要在这里完成。getValue () 获取您的计算的最终值或当前值。所以,对于 SUM 操作,您将会返回总数/计 数操作。在正在运行的聚合器中,将只返回正在计算的值。

下一节的示例将展示如何创建一个简单的 Word Count 聚合器。此聚合获取一 列中的所有句子并计算字数,返回一个包含该列的字数的整数值。对这种聚合的 需求很少,所以还不存在这样的聚合。对于本文中的练习,建议使用 Eclipse BIRT All-in-One 分发版。

创建新聚合插件

要创建新聚合插件:

单击 File > New > Other 创建一个新插件项目。展开 Plug-In Development 文件夹,然后单 击 Plug-in Project。

在 New Plug-in Project 窗口中(如图 1 所示) ,在 ID 字段中为项目提供一个惟一名称,使用合适的信息完成 Version、Name 和 Provider 字段。

图 1. 项目属性

时间: 2024-09-11 11:25:55

使用Eclipse BIRT扩展点:聚合的相关文章

eclipse rcp 扩展点view创建时机问题

问题描述 eclipse rcp 扩展点view创建时机问题 我创建了两个view扩展点,他们以分页方式布局,如图 启动时自动加载左边的页面(view类的构造函数和CreatPartControl被调用).只有当鼠标点击切换到右边页面时,对应view的构造函数和CreatePartControl方法才会被调用,页面才会创建.有没有什么方法让这个页面在这个插件启动时就自动创建,而不是点击后才创建.

自己动手编写Eclipse扩展点

扩展(Extension)是Eclipse中一个关键的机制,plug-in利用扩展向Eclipse平台添加新功能.但是扩展不能随意地创建,必须按照扩展点(extension point)定义的规范进行明确的声明,Eclipse才能认出这些扩展.我们不仅可以使用Eclipse提供的众多现成的扩展点,而且还可以定义新的扩展点,并在该扩展点上进行扩展. 当然,扩展点的定义比较复杂.不过Eclipse为用户提供了图形化的编辑界面,我们只要输入一些信息,Eclipse就会自动生成代码,使扩展点的定义变得非

【Eclipse插件开发】在什么情况下创建扩展点

我想绝大部分Eclipse插件开发人员对扩展点这个概念应该都比较熟悉了,那 么什么时候决定创建自己的扩展点呢?简单的说一下俺的看法,错了不要笑话. 为什么说这个问题呢?亲眼看到一些插件开发刚入门的人,不怎么懂得扩展 点相关的东西,也谈不上理解扩展点机制,所以这个时候从来不自己定义新的扩 展点:过了一段时间之后,感觉使用Eclipse扩展点有点经验了(尤其是 workbench相关的扩展点肯定经常使用),开始定义自己的扩展点了,....,灾 难发生了,乱定义扩展点,各种想法的扩展点都出来了....

ASP.NET MVC中你必须知道的13个扩展点

ScottGu在其最新的博文中推荐了Simone Chiaretta的文章13 ASP.NET MVC extensibility points you have to know,该文章为我们简单介绍了ASP.NET MVC中的13个扩展点.Keyvan Nayyeri(与Simone合著了Beginning ASP.NET MVC 1.0一书)又陆续发表了一些文章,对这13个扩展点分别进行深入的讨论.我将在 以后的随笔中对这些文章逐一进行翻译,希望能对大家有所帮助. ASP.NET MVC设计

eclipse birt 浏览器 访问报错

问题描述 org.eclipse.birt.report.service.api.ReportServiceException:Errorhappenedwhilerunningthereport.atorg.eclipse.birt.report.service.ReportEngineService.throwDummyException(ReportEngineService.java:1114)atorg.eclipse.birt.report.service.ReportEngineS

Spring Boot 中如何使用 Dubbo Activate 扩展点

摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 公司的核心竞争力在于创新 – <启示录> 』 继续上一篇:< Springboot 整合 Dubbo/ZooKeeper >,在 Spring Boot 使用 Dubbo Activate 扩展点.这是一个群友问的,我总结下,分享给更多人. 本文提纲 一.什么是 Dubbo Activate 注解 二.使用 Dubbo Activate 三.小结   运行环境:JDK 7

Rafy 框架 - 插件级别的扩展点

本章说明如何使用额外的插件(如客户化插件)对另一插件(如产品插件)进行扩展.   使用场景 在 产品线工程 中,项目的研发分为领域工程和应用工程.这个过程中会需要对领域工程中的内容进行大量的扩展.   分层与扩展点 下图中显示了一个产品插件的逻辑分层,以及各层对应的扩展点.   可扩展的内容 实体属性扩展 可以为产品插件的实体添加新的实体属性,也可以修改现有属性的一些元数据. 实体配置扩展 可以随意修改产品插件中的实体配置,如实体的数据库映射. 实体查询的扩展 可以添加新的实体查询.可以修改.替

RCP自定一扩展点

问题描述 最近学习RCP的扩展点,虽然说自带的视图,工具栏扩展点已经很熟悉了,但自定义扩展点实在不解本来插件A直接把借口包暴漏出来,Bimport一下就可以使用A的方法为什么还要去配置自定义的插件,B那边就去依赖插件再设置实现类,这块谁有例子,能给解释下,尤其自定义插件那块extension下的point,id,name属性怎么使用有例子的同学可以发下,求解!gongzuodiyi1@163.com 解决方案 解决方案二:什么来的,不懂.还以为是那个webService呢解决方案三:该回复于20

RCP 实现首选项扩展点,默认和应用按钮如何变为中文

问题描述 我们用RCP开发,我实现了RCP的首选项扩展点,但是界面出来后默认和应用是英文,我现在怎么设置这两个按钮的文本呢?重写了applyButton还是不行 解决方案 解决方案二:shajbvgyygbvv