SSRS BIDS 2008 R2条形图颜色填充表达图例

时间:2011-11-07 15:19:55

标签: sql-server reporting-services ssrs-2008 expression bids

screensdhot

我在上面的条形图下面有以下表达式:

系列特性>填充>表达

= IIF(字段!classification.Value = “RFC”, “#56ca29”, “#ff6969”)

这对于条形图上所有项目的所有RFC和RED的绿色都很好,但是两者的LEGEND都是红色的。我不知道为什么这是因为我上面有一个类似的图表使用相同的表达式并且工作正常。

2 个答案:

答案 0 :(得分:1)

由于在上面的条形图中使用了表达式,因此发现这导致了问题。

只需重新安排表达式:

= IIF(字段!classification.Value = “RFC”, “#56ca29”, “#ff6969”)

= iif(Fields!classification.Value =“Project”,“#ff6969”,“#56ca29”)

这意味着该表达式是独一无二的,与上述内容没有冲突 - 只有完整功能的图例才会产生相同的结果。

答案 1 :(得分:1)

请注意,针对此问题的上述答案仅为问题的解决方法 - 图例确定第一个系列的填充颜色与图表列填充颜色的方式之间的差异是仍然存在于封面下,但由于匹配第一个数据系列的全部ELSE子句不再在报告中公开。

我有类似的问题,但需要2种以上的颜色,因此使用Switch功能 - 即表达式类似于: = Switch(Fields!classification.Value =“Project”,“#ff6969”,Fields!classification.Value =“RFC”,“#56ca29”,Fields!classification.Value =“RFC”,“#33ee22”,True, “红色”)

最后一个切换条件“True”对于任何与列出的值不匹配的值都是全能的。 然而我发现第一个Legend条目总是回落到RED catch-all,即使它在Switch列表中(例如“Project”)。

这个(不合需要的)行为与此问题的陈述答案一致 - 即通过确保第一个Legend条目与iif()函数的ELSE“catch-all”部分匹配,然后Legend将正确显示颜色。 / p>

这意味着在我们的情况下,我们不能拥有一个全能的RED填充颜色,并且需要更改上面的“红色”以匹配第一个(希望始终存在)图例条目的所需颜色。

皮奎特