Вероятно, это проблема с вашими типами данных.Вы пытаетесь хранить как числовые, так и строковые типы в одном поле.Я бы использовал преобразование, чтобы убедиться, что у вас есть правильные типы данных.Это выражение должно обрабатывать несовпадающие типы данных.
=IIF(CDbl(Fields!Base_Rent_Variance.Value) >= .15 or CDbl(Fields!Base_Rent_Variance.Value) <= -.15,
"Red",
IIF(TRIM(CStr(Fields!Base_Rent_Variance.Value)) = "Review","Red","White"))
Еще один вариант - использовать функцию InStr
, как показано ниже.
=IIF(CDbl(Fields!Base_Rent_Variance.Value) >= .15 or CDbl(Fields!Base_Rent_Variance.Value) <= -.15,
"Red",
IIF(InStr(CStr(Fields!Base_Rent_Variance.Value), "Review"),"Red","White"))
На основе приведенного ниже комментария, давайте попробуем этоодин с оператором switch.Следующий оператор switch оценит первое выражение, установит для красной ячейки значение true, проверит второе выражение, установит для красной ячейки значение true и, наконец, установит что-либо, оставленное белым.
=SWITCH(CDbl(Fields!Base_Rent_Variance.Value) >= .15 or CDbl(Fields!Base_Rent_Variance.Value) <= -.15, "Red",
InStr(CStr(Fields!Base_Rent_Variance.Value), "Review"),"Red",
true, "White")