我有以下表达式将背景色应用于文本框,但当该条件为true时,仅应用红色。所有其他条件都显示为白色吗?例如,当报表呈现时第一个条件为true时,背景颜色是白色而不是绿色?
=IIF(Round(SUM(CInt(Fields!TotalAchieved.Value) * 7.14)) >= 86, "Green",
IIF(Round(SUM(CInt(Fields!TotalAchieved.Value) * 7.14)) >= 79 AND
Round(SUM(CInt(Fields!TotalAchieved.Value) * 7.14)) <= 85, "Light Green",
IIF(Round(SUM(CInt(Fields!TotalAchieved.Value) * 7.14)) >= 64 AND
Round(SUM(CInt(Fields!TotalAchieved.Value) * 7.14)) <= 78, "Yellow", "Red" )))
答案 0 :(得分:2)
您的SUM(CINT(Fields!TotalAchieved.Value)* 7.14)计算似乎没有给您期望的结果。我要做的第一件事是添加一列以显示此值,以确保它提供了您所期望的值。
一旦您答对了,那么我还建议您使用SWITCH语句而不是嵌套的IIF,它们更易于读取/调试。
您的表情将是
=SWITCH(
Round(SUM(CInt(Fields!TotalAchieved.Value) * 7.14)) >= 86, "Green",
Round(SUM(CInt(Fields!TotalAchieved.Value) * 7.14)) >= 79, "LightGreen",
Round(SUM(CInt(Fields!TotalAchieved.Value) * 7.14)) >= 64, "Yellow",
TRUE, "Red"
)
通过这种方式,您不需要检查范围,例如,如果值是75,则第一个表达式失败,但是第二个表达式为true,因此SWITCH
将在该点停止并且不评估休息,如果都失败了,那么最后的TRUE
会像else
一样。