【问题标题】:SSRS BIDS 2008 R2 Bar Chart Colour fill expression LegendSSRS BIDS 2008 R2 条形图 颜色填充表达式 图例
【发布时间】:2011-11-07 15:19:55
【问题描述】:
我有上面的条形图,在下面的部分下面有以下表达式:
系列属性>填充>表达式
=iif(Fields!classification.Value="RFC","#56ca29","#ff6969")
这在条形图上的所有 RFC 和所有项目的绿色和红色方面都很好,但是图例对于两者都是红色的。我不知道为什么会这样,因为我上面有一个类似的图表,它使用相同的表达式并且工作正常。
【问题讨论】:
标签:
sql-server
reporting-services
ssrs-2008
expression
bids
【解决方案1】:
由于在上面的条形图中使用了表达式,因此发现这会导致问题。
通过简单地重新排列表达式:
=iif(Fields!classification.Value="RFC","#56ca29","#ff6969")
到
=iif(Fields!classification.Value="Project","#ff6969","#56ca29")
这意味着该表达式是独一无二的,并且与上述不冲突 - 仅与功能齐全的图例相同。
【解决方案2】:
请注意,上述对这个问题的回答只是该问题的解决方法 - 图例如何确定第一个系列的填充颜色与图表列填充颜色的区别是仍然存在于幕后,但由于与第一个数据系列匹配的包罗万象的 ELSE 子句不再显示在报告中。
我遇到了类似的问题,但需要超过 2 种颜色,因此使用了 Switch 函数 - 即类似于以下内容的表达式:
=Switch(Fields!classification.Value="Project","#ff6969", Fields!classification.Value="RFC","#56ca29", Fields!classification.Value="RFC","#33ee22", True, “红色”)
最后一个开关条件“真”是所有与所列值不匹配的值。
然而,我发现第一个 Legend 条目总是退回到 RED 包罗万象,即使它在 Switch 列表中(例如“项目”)。
这种(不受欢迎的)行为与该问题的所述答案一致 - 即,通过确保第一个 Legend 条目与 iif() 函数的 ELSE“catch-all”部分匹配,然后 Legend 将正确显示颜色。
这意味着在我们的例子中,我们不能有一个包罗万象的红色填充颜色,并且需要更改上面的“红色”以匹配第一个(希望始终存在)图例条目的所需颜色。
皮奎特