Eclipse Birt - 使用事件处理程序动态设置样式单元格表

时间:2015-02-09 16:56:19

标签: eclipse report handler cell birt

我在报告中有Birt表,我想创建一个处理程序类,如果单元格包含列的最大值,则动态更改表格中单元格的样式颜色。

我尝试了第一步,然后将类挂钩到表格报告的行中。

public class RowMinMax implements IRowEventHandler
{

  public void onCreate(IRowInstance rowInstance, IReportContext reportContext)
  {
      double max=0;             
      IRowData rowData = rowInstance.getRowData();
      double cellValue = (double) rowData.getColumnValue("nameColumn");

      if(cellValue>max)
      {
         //change cell style
      }
  } ... //OTHER METHOD INTERFACE
}

我找不到合适的方法来查找对象单元格并设置样式(例如字体颜色为红色)。

我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:0)

为什么这么复杂?您可以使用rptdesign文件中的Javascript实现此目的。无需使用自定义Java类。 首先,您应该使用BIRT的聚合列计算最大值(让我们调用它" maxValue") - 在DataSet本身或Table项定义中。 接下来,您可以在报告的初始化事件中定义这样的函数:

function modifyStyle(cell, row) {
    if (row["nameColumn"] >= row["maxValue"]) {
        cell.getStyle().borderLeftWidth = "3px";
        cell.getStyle().borderRightWidth = "3px";
    }
} 

在单元格的onCreate事件中,调用函数:

modifyStyle(this, row);