EclipseBirt-使用事件处理程序动态设置样式单元格表
我在报表中有Birt表,我想创建一个处理程序类,如果单元格包含列的最大值,则该类可以动态更改表中单元格的样式颜色 我在第一步中尝试了这一点,并将类挂接到了表报表的行上EclipseBirt-使用事件处理程序动态设置样式单元格表,eclipse,report,handler,cell,birt,Eclipse,Report,Handler,Cell,Birt,我在报表中有Birt表,我想创建一个处理程序类,如果单元格包含列的最大值,则该类可以动态更改表中单元格的样式颜色 我在第一步中尝试了这一点,并将类挂接到了表报表的行上 public class RowMinMax implements IRowEventHandler { public void onCreate(IRowInstance rowInstance, IReportContext reportContext) { double max=0;
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
}
我找不到合适的方法来查找对象单元格并设置样式(es.font color red)
我怎样才能解决这个问题
谢谢为什么这么复杂?您可以通过rptdesign文件中的Javascript实现这一点。无需使用自定义Java类。 首先,您应该使用BIRT的聚合列计算最大值(我们称之为“maxValue”)——要么在数据集本身中,要么在表项定义中。 接下来,您可以在报告的初始化事件中定义如下函数:
function modifyStyle(cell, row) {
if (row["nameColumn"] >= row["maxValue"]) {
cell.getStyle().borderLeftWidth = "3px";
cell.getStyle().borderRightWidth = "3px";
}
}
在单元格的onCreate事件中,调用函数:
modifyStyle(this, row);
你解决了这个问题吗?这也许对我也有帮助。