2010-09-14 80 views
0

我目前正如您所期望的那样与BIRT卡住。强制堆叠条形图中的分组颜色

正如标题所示,我正在寻找一种强制BIRT将特定颜色与堆积条形图中的分组相关联的方法。

我需要这种行为,因为我使用相同的参数和数据源生成多个图表,但在不同的过滤器上。

由于分组的重新划分并不完美,具体取决于过滤器,因此我在两个不同的图表中获得了相同分组的不同颜色。

例如:

在图1中,我得到[A,B,C],蓝色为A,红色B和橙色C. 分组因为在图2 I得到的只有[A,C ]分组,我有蓝色为A,红色为C.

这种行为破坏了连贯性,如果两个图表是在同一个页面...

没有人有任何想法如何解决这一问题?

回答

0

我在BIRT交易所的DevShare在后,不只是这一点:

http://www.birt-exchange.org/org/devshare/designing-birt-reports/1231-custom-chart-colors-based-on-data-set-values/

图表脚本中使用的数据集的值来动态设置图表上的颜色。以下是图表上“beforeDrawDataPoint”事件的关键位:

var Condition = dph.getBaseDisplayValue(); 
if(Condition.contains("Critical")) { fill.set(255, 0, 0);} // Set to RED 
else if(Condition.contains("High")){ fill.set(255, 255, 0); } // Set to Yellow 
... 

祝你好运!

+0

嗯,谢谢你的回答,但它只是指在堆上。实际上你的代码只适用于整个堆栈。我的问题在于堆栈包含的组的着色。 – Vincent 2010-09-14 12:52:01

+0

您可以通过dph值(包括您的分组)了解您需要的任何过滤条件。在引用的示例中使用策略,我已经完成了您在问题中描述的内容。你试过一下样品吗? – MystikSpiral 2010-09-14 13:16:43

+0

其实我得到了答案,感谢你:)技巧在于:var Condition = dph.getSeriesDisplayValue();一切正常。谢谢! – Vincent 2010-09-14 13:21:04