首页 > 解决方案 > BIRT CELL 条件突出显示

问题描述

我需要用 BIRT 为报告表中的某些行着色。已经有类似的讨论,但对我来说还不够。

我想做的是像 Excel 那样用它的条件格式为单元格着色,即我有几行,我想根据它的“强度”为它们着色。例如,r1= 10, r2= 20, r3= 100。我会看到 r3 的颜色最饱和,而 r1 的颜色最少。

在此处输入图像描述

干杯!

标签: javascriptreportingbirt

解决方案


您可以在 onCreate 事件中使用 Javascript 执行此操作。对于数据项本身可能更好,而不是包含该项目的单元格。

至少这对于表格项目很容易,但似乎您正在使用交叉表。以下指南适用于 TABLE:您可以在 onCreate 事件中使用通常的 row["NAME"] 语法访问该值,即使调色板不提供它。因此,例如(未经测试):

var cell_value = row["NAME"];
var intensity = do_something_to_compute_this_from(cell_value);
// should be in the range 0.0 to 1.0
// Now compute RGB values from a "base" RGB ( 0 .. 255 )
var white = [255, 255, 255];
var base = [ 0, 60, 0 ]; // some green
var result = [];
for (var i=0; i<3; i++) {
    var w = white[i];
    var b = base[i];
    var r = int( intensity * b + (1-intensity) * w ); 
    result.push(r);
}
this.getStyle().backgroundColor = "RGB(" + result[0] + "," + result[1] + "," + result[2] + ")";

推荐阅读