rdlc背景颜色错误 - 大表达似乎导致错误

时间:2015-08-25 18:01:41

标签: asp.net colors expression rdlc

我正在ASP.Net MS visual 2010中设计一个相当大的rdlc报告。如果某些内容不合适,报告中的某些行需要突出显示该行。所以在点击表格行后,我转到了我的rdlc报告的属性框中的背景颜色选项卡。我试图让以下表达式在属性框中的背景颜色选项卡中工作。

`=IiF((Fields!C.Value < .75 And Fields!C.Value <> "") 
Or (Fields!S.Value < .75 And Fields!S.Value <> "")
Or (Fields!O.Value > 5), "Yellow", "White")`

最初我想要背景颜色为黄色或白色,但出于测试目的,我将白色变为绿色,因为白色是默认值。

`=IiF((Fields!C.Value < .75 And Fields!C.Value <> "") 
Or (Fields!S.Value < .75 And Fields!S.Value <> "")
Or (Fields!O.Value > 5), "Yellow", "Green")`

这导致一些行为绿色,但没有一行是黄色,应该是黄色的行是白色。

当我将其缩短为

时,它可以正常工作
`=IiF((Fields!C.Value < .75 ), "Yellow", "Green")`

我得到所有的绿色和黄色行。

当我尝试

时它工作正常
`=IiF((Fields!C.Value < .75 And Fields!C.Value <> ""), "Yellow", "Green")

这也很好,我把所有的行都变成绿色或黄色。

但是只要我添加一个或者他们就会停止工作。

`=IiF((Fields!C.Value < .75 And Fields!C.Value <> "") 
Or Fields!O.Value > 5 , "Yellow", "Green")`

这导致一些绿色行但没有黄色行,黄色行应该都是白色的吗?

在某些情况下,我没有绿色或黄色行。我厌倦了原来的陈述,

`IiF((Fields!Cpk_C.Value >= .75 Or Fields!Cpk_C.Value = "") 
And (Fields!Cpk_S.Value >= .75 Or Fields!Cpk_S.Value = "")
And (Fields!Cpk_S.Value <= 5), "Green", "Yellow")`

但是没有任何作用,因为它都是白色的行。

对于我做错的任何帮助,或为什么这不起作用,表示赞赏,谢谢。

1 个答案:

答案 0 :(得分:1)

如上面的评论所示,问题已经解决(感谢Ic的提示)。问题与项目C.Value和S.Value的值类型有关。它们是基于十进制的而不是字符串,因此与&lt;&gt;进行比较“”导致格式警告,该格式警告不会在这些行上执行代码,从而导致不应用颜色。由于它们基本上是浮动的,因此IsNumeric函数更适合。

= IiF((Fields!Cpk_C.Value&gt; .75和IsNumeric(Fields!Cpk_C.Value))或(Fields!Cpk_S.Value&gt; .75和IsNumeric(Fields!Cpk_S.Value))或Fie​​lds! OOC.Value> 5,“Yellow”,“White”)