Справка #ERROR, построитель отчетов SSRS, IIF с LOOKUPSET - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь сравнить 2 строки данных в виде %'s.Я генерирую и это "#Error".

=IIF(Fields!Grade.Value = "ONGRADE" > LookupSet(Fields!Grade.Value = "ONGRADE", Fields!grade.Value = "ONGRADE", Fields!grade.Value = "ONGRADE", "Previous3Week"), "UP" ,"DOWN") 

Есть два DataSets.

1 Ответ

0 голосов
/ 22 мая 2018

Вы используете IIF неправильно.IIF просто смотрит на сравнение и возвращает первое значение, если ИСТИНА, и второе значение, если ЛОЖЬ.

=IIF(1 = 2, True, False)

, который читается как

Если 1 = 2, то возвращает ИСТИНА, иначе возвращаетсяFalse

Вы также используете LookUpSet неправильно.Первый аргумент LookUpSet - это ваше текущее поле набора данных, которое вы хотите сравнить, второй аргумент - это поле из первого, с которым вы хотите сравнить - поскольку вы используете один и тот же набор данных, они могут быть одинаковыми.Третий аргумент LookUpSet - это поле, которое вы хотите вернуть (вы знаете поле ONGRADE, какое значение вы хотите вернуть?).

Ваше выражение читает, если Grade = ONGRADE> LookupSet (бла-бла) ...

Какое поле значений вы хотите сравнить?Предполагая, что это поля! GRADE_VALUE.Value, ваш IIF может быть как

=IIF(Fields!Grade.Value = "ONGRADE", 
    IIF(Fields!GRADE_VALUE.Value > 
        LookupSet(Fields!Grade.Value, Fields!grade.Value, Fields!GRADE_VALUE.Value", "Previous3Week"), 
        "UP" ,
        "DOWN"),
"Not ONGRADE")

Если вы хотите сравнить все типы GRADE (не только ONGRADE), это будет проще:

=IIF(GRADE_VALUE > LookupSet(Fields!Grade.Value, 
                Fields!grade.Value, 
                    Fields!GRADE_VALUE.Value, 
                        "Previous3Week")
    , "UP" 
    ,"DOWN")
...