目前我的RS图表中有5个条形图 - 未来可能有7个条形图或17个条形图形条或27个条形条形图!
有几个酒吧,我可以有这样的表达式:
=iif(Fields!Market.Value = "Spain"
,"Gold"
,iif (Fields!Market.Value = "Denmark"
, "Gray"
, iif(Fields!Market.Value = "Italy"
, "Blue"
, "Purple"
)
)
)
如果我无法预测将包含多少个国家+我宁愿不用“绿色”,“红色”等硬编码,我该如何更改表达?
我已经尝试了这个,但这是错误的:
=Switch(Mod(Fields!Rank.Value/CDbl(2))=CDbl(0), "Gold",
Mod(Fields!Rank.Value/CDbl(3))=CDbl(0), "Gray",
Mod(Fields!Rank.Value/CDbl(2))>CDbl(0) "Blue")
以上是完全不正确的语法:这有效:
=Switch(CDbl(Fields!Rank.Value Mod 2)=CDbl(0), "Gold",
CDbl(Fields!Rank.Value Mod 3)=CDbl(0), "Gray",
CDbl(Fields!Rank.Value Mod 2)>CDbl(0), "Blue")
好的 - 以上运行(不确定如何!)但是下面的内容是基于Dominic Goulet的帮助,并且非常容易理解,并且可以更好地扩展到更多颜色;这是5种颜色的解决方案:
=Switch(CDbl(Fields!Rank.Value Mod 5)=CDbl(0), "Gold",
CDbl(Fields!Rank.Value Mod 5)=CDbl(1), "Gray",
CDbl(Fields!Rank.Value Mod 5)=CDbl(2), "Green",
CDbl(Fields!Rank.Value Mod 5)=CDbl(3), "Red",
CDbl(Fields!Rank.Value Mod 5)=CDbl(4), "Pink")
答案 0 :(得分:6)
首先,不要使用很多“IIF”,而应该使用“Switch”,它更精简。
Switch(Fields!Market.Value = "Spain", "Gold",
Fields!Market.Value = "Denmark", "Gray",
Fields!Market.Value = "Italy", "Blue")
现在,如果你想要每个颜色的颜色,你应该明确地将它存储在数据库中,并在需要时将其拉出来。这样,一个国家的每份报告都会有相同的颜色。
答案 1 :(得分:2)
创建一个函数会更好。为此,请转到“报告属性”,选择代码并键入以下示例:
Public Function Color(ByVal Index as Integer) as String
Select Case Index
Case = 1
return "#a6cee3"
Case = 2
return "#1f78b4"
Case = 3
return "#b2df8a"
Case = 4
return "#33a02c"
Case = 5
return "#fb9a99"
Case = 6
return "#e31a1c"
Case = 7
return "#fdbf6f"
Case = 8
return "#ff7f00"
Case = 9
return "#cab2d6"
Case = 10
return "#6a3d9a"
End Select
End Function
在"系列属性 - >选择颜色 - >的填充选项上颜色选择fx 把这段代码
=Code.Color(rownumber(nothing))
每个酒吧都有颜色。
对于我从网站上获取的HEX颜色:http://colorbrewer2.org/#type=qualitative&scheme=Paired&n=10 它显示了彼此匹配的最佳颜色,因此您不需要考虑这一点。您可以根据需要添加任意数量的颜色