why*_*heq 3 sql-server-2008-r2 reporting-services ssrs-2008
目前我的RS图表中有5个柱 - 未来可能有7个柱或17个柱或27个柱!
有几个酒吧,我可以有这样的表达式:
=iif(Fields!Market.Value = "Spain"
,"Gold"
,iif (Fields!Market.Value = "Denmark"
, "Gray"
, iif(Fields!Market.Value = "Italy"
, "Blue"
, "Purple"
)
)
)
Run Code Online (Sandbox Code Playgroud)
如果我无法预测将包括多少国家+我宁愿不必硬编码"绿色","红色"等我如何更改表达式?
我试过这个但是错了:
=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")
Run Code Online (Sandbox Code Playgroud)
以上是完全不正确的语法:这有效:
=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")
Run Code Online (Sandbox Code Playgroud)
好的 - 以上运行(不确定如何!)但是下面是基于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")
Run Code Online (Sandbox Code Playgroud)
首先,不要使用很多"IIF",而应该使用"Switch",它更精简.
Switch(Fields!Market.Value = "Spain", "Gold",
Fields!Market.Value = "Denmark", "Gray",
Fields!Market.Value = "Italy", "Blue")
Run Code Online (Sandbox Code Playgroud)
现在,如果你想要每个颜色的颜色,你应该在数据库中明确地存储颜色,并在需要时将其拉出来.这样,一个国家在每份报告上都会有相同的颜色.
| 归档时间: |
|
| 查看次数: |
17255 次 |
| 最近记录: |