我正在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")`
但是没有任何作用,因为它都是白色的行。
对于我做错的任何帮助,或为什么这不起作用,表示赞赏,谢谢。
答案 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))或Fields! OOC.Value> 5,“Yellow”,“White”)