8. 当系统处理完成后,报表被显示出来。这是一份商品销售报告,显示的是每类商品的季度销售额以及累计情况。接下来,我们尝试用 Java
创建一个事件响应处理类,把每季度销售额在10万美元以上的数据用红色标示出来。
创建 Java 类
按照如下步骤,用 Java 创建百灵报表(BIRT)的事件响应处理程序。
图 16. 创建 Java 类
1. 在主菜单中选择 File -> New -> Class 菜单项,打开 New Java Class
对话框。
图 17. New Java Class 对话框
2. 在 New Java Class 对话框的 Name 处输入 DataItemEventHandler
,作为该事件响应处理类的名字。单击 Browse…… 按钮,打开 Superclass Selection 对话框。选择或直接输入
"org.eclipse.birt.report.engine.api.script.eventadapter.DataItemEventAdapter"
作为父类。
3. 单击 Finish 按钮,一个名称为 DataItemEventHandler.java
的文件被创建出来,在这个文件里输入如下代码:
清单 1. 报表事件响应处理类
import
org.eclipse.birt.report.engine.api.script.IReportContext;
import
org.eclipse.birt.report.engine.api.script.eventadapter.DataItemEventAdapter;
import
org.eclipse.birt.report.engine.api.script.instance.IDataItemInstance;
public
class DataItemEventHandler extends DataItemEventAdapter {
public void
onRender(IDataItemInstance data, IReportContext reportContext)
{
super.onRender(data, reportContext);
if (((Double)
data.getValue()).doubleValue() > 100000)
{
data.getStyle().setColor("red");
}
}
}
在上面这段代码中,我们重写了 DataItemEventHandler 类的 onRender 方法。该方法带有两个参数,其中 data
就是当前我们要操作的数据实例,在这里我们通过条件判断来把大于10万美元的数据设置为红色。另外一个参数 reportContext
则是一个全局的上下文对象,利用这个上下文对象,可以在不同的事件响应处理类中传递信息。
4. 确认无误后存盘,报表事件响应处理类创建完成。
Java 类与报表关联
按照如下步骤,将创建好的 Java 事件响应处理类和样例报表关联起来。