SSRS - Условное форматирование не применяется? - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть следующее выражение, чтобы применить цвет фона к текстовому полю, но только красный цвет применяется, когда это условие выполняется.Все остальные условия отображаются как белые?Например, когда первое условие истинно при отображении отчета, цвет фона будет белым, а не зеленым?

=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" )))

1 Ответ

0 голосов
/ 26 ноября 2018

Может показаться, что ваш расчет SUM (CINT (Fields! TotalAchieve.Value) * 7.14) не дает ожидаемых результатов.Первое, что я хотел бы сделать, это добавить столбец, который показывает это значение, чтобы убедиться, что он дает вам то, что вы ожидаете.

После того, как у вас есть это правильное значение, я бы также предложил вам использовать оператор SWITCH, а не вложенныйИИФ, их намного легче читать / отлаживать.

Ваше выражение будет

=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, 1-е выражение терпит неудачу, но второе является истинным, поэтому SWITCH остановится в этой точке и не оценит остальные, если все не выполнится, то окончательное TRUE будет действовать как else.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...