我在报告中有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
}
我找不到合适的方法来查找对象单元格并设置样式(例如字体颜色为红色)。
我该如何解决这个问题?
由于
答案 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);