我是Stackoverflow的新手,我对使用SSRS和报表生成器相当陌生。我试图根据2个不同单元格中的值更改背景颜色,但它似乎不起作用。我已经尝试使用带有嵌套的Switch语句的Iif语句,但这似乎不起作用。我也试过只使用一个SWITCH语句,但这只是给了我没有颜色的字段。
我想要实现的是,如果"挖掘"列是" EX01",它必须遵循一组不同的规则。我尝试过的方法:
=SWITCH(
Fields![excav].value = "ex01" and Fields!tons.Value < 500 , "Red",
Fields![excav].value = "ex01" and Fields!tons.Value >= 500 and Fields!tons.Value < 1000, "Yellow",
Fields![excav].value = "ex01" and Fields!tons.Value >= 1000, "Green",
Fields!tons.Value < 1840, "Red",
Fields!tons.Value >= 1840 and Fields!tons.Value < 2300 , "yellow",
Fields!tons.Value >= 2300, "Green")
Result 在这种情况下,它完全忽略了&#34; ex01&#34;
的条件=Iif(SWITCH(
Fields!excav.value = "ex01" and Fields!tons.Value < 500 , "Red",
Fields!excav.value = "ex01" and Fields!tons.Value >= 500 and Fields!tons.Value < 1000, "Yellow",
Fields!excav.value = "ex01" and Fields!tons.Value >= 1000, "Green"),
SWITCH(
Fields!tons.Value < 1840, "Red",
Fields!tons.Value >= 1840 and Fields!tons.Value < 2300 , "yellow",
Fields!tons.Value >= 2300, "Green"),"No Color")
Result 在这种情况下,它忽略了所有条件,并直接进入&#34; No Color&#34;条件。
非常感谢任何协助。
答案 0 :(得分:0)
可行的是它与case有关,这意味着字符串ex01与EX01不同。
所以你必须将表达式更改为Fields!excav.value = "EX01"
或使用像LCase这样的函数使值小写然后进行比较
LCase(Fields!excav.value) = "ex01"
我已经添加了示例图片,以告诉您如果您按照我的建议进行操作,那就可以了。
在上面的表格中我使用你的表达式,而在下面的表格中我使用了LCase函数
=SWITCH(
Lcase(Fields![excav].value) = "ex01" and Fields!tons.Value < 500 , "Red",
Lcase(Fields![excav].value) = "ex01" and Fields!tons.Value >= 500 and Fields!tons.Value < 1000, "Yellow",
Lcase(Fields![excav].value) = "ex01" and Fields!tons.Value >= 1000, "Green",
Fields!tons.Value < 1840, "Red",
Fields!tons.Value >= 1840 and Fields!tons.Value < 2300 , "yellow",
Fields!tons.Value >= 2300, "Green")