SSRS:IIF语句更改填充颜色错误

时间:2019-12-06 21:47:42

标签: sql-server reporting-services

在每个示例中,我都能找到方便的逻辑,这正是我正在使用的逻辑,但是我无法让它做我需要做的事情。看来我绝对不能在IIF表达式中使用AND条件,但是即使尝试解决这一问题,我也无法获得正确的结果。

尝试#1:

=iif(Fields!Days_to_Bill.Value >= 5, "Yellow", iif(Fields!Days_to_Bill.Value >= 10, "Red", "Transparent"))

这将导致所有数字(包括10和更大的数字)均为黄色。 enter image description here

尝试2:

=iif(Fields!Days_to_Bill.Value >= 5 and < 10, "Yellow", iif(Fields!Days_to_Bill.Value >= 10, "Red", "Transparent"))

这会导致以下错误:

enter image description here

我真的以为这将是一个超级简单的表达,但我一定会缺少一些东西。

2 个答案:

答案 0 :(得分:1)

对于初学者来说,第二个IIF()需要针对要检查的每个条件重复Fields!Days_to_Bill.Value

因此您需要=iif(Fields!Days_to_Bill.Value >= 5 and Fields!Days_to_Bill.Value < 10...

第二,第一个方程是正确的,您将获得预期的结果。在IIF()语句中,它将停止在第一个“ True”值。结果集中的所有内容均为> = 5,因此它们均为黄色。

答案 1 :(得分:0)

如果仅更改表达式的顺序,则可以避免使用and。只需先检查> = 10的值。另外,我怀疑所需的突出显示逻辑,因为我怀疑您在示例中犯了一些错误。

=iif(Fields!Days_to_Bill.Value >= 10, "Transparent", iif(Fields!Days_to_Bill.Value >= 5 "Yellow", "Red"))