Выражение BackgroundColor - PullRequest
       15

Выражение BackgroundColor

1 голос
/ 25 апреля 2019

Я создал вычисляемое поле Base_Rent_Variance, которое работает следующим образом:

=IIF(Fields!CurrNrmRent.Value = 0 and Fields!PriorNrmRent.Value > 0, "Review", IIF(Fields!PriorNrmRent.Value = 0 and Fields!CurrNrmRent.Value > 0, "Review", IIF(Fields!CurrNrmRent.Value > 0 and Fields!PriorNrmRent.Value > 0, (Fields!CurrNrmRent.Value-Fields!PriorNrmRent.Value)/IIF(Fields!PriorNrmRent.Value = 0, 1, Fields!PriorNrmRent.Value), nothing)))

Я пытаюсь создать выражение BackgroundColor, чтобы, если Base_Rent_Variance> = 15% или <= -15%, цвет фонакрасный, и если он равен, проверьте цвет красный.Выражение, которое я создал, правильно заполняет фон красным для 15% отклонений, но не для обзора.Мое выражение ниже.Что я делаю не так? </p>

=IIF(Fields!Base_Rent_Variance.Value >= .15 or Fields!Base_Rent_Variance.Value <= -.15, "Red",iif(RTRIM(Fields!Base_Rent_Variance.Value) = "Review","Red","White"))

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

Вы также можете использовать me.Value в цветовых выражениях.

Например:

=iif(me.Value = "Review" OrElse me.Value >= 0.15 OrElse me.Value <= -0.15, "Red", "NoColor")

Это означает, что вам не нужно каждый раз пересчитывать свои значения или отслеживатьизменяется в нескольких местах, если расчеты меняются.

0 голосов
/ 25 апреля 2019

Вероятно, это проблема с вашими типами данных.Вы пытаетесь хранить как числовые, так и строковые типы в одном поле.Я бы использовал преобразование, чтобы убедиться, что у вас есть правильные типы данных.Это выражение должно обрабатывать несовпадающие типы данных.

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