Вычисляемое поле SSRS с выражением IIF выдает ошибку при ложном условии - PullRequest
0 голосов
/ 10 марта 2020

Здравствуйте, я довольно новичок в SSRS и работаю над подготовкой своего первого отчета для работы. До сегодняшнего дня все шло хорошо, когда мне нужно было сделать текстовое поле в Tablix, чтобы обрабатывать как числа, так и текст. Столбец в моей таблице SQL, который раньше был полем из чисто чисел, теперь имеет n | a для определенных строк. Поэтому я написал следующее выражение для обработки этих n | as. Когда поле выручки имеет числовое значение c, формула работает, но когда оно равно n | a, оно отображается в отчете как #error, и я не могу понять, почему. Я удалил все форматирование из текстового поля с тем же результатом.

=IIF(Fields!Proceeds.Value<>"n|a",Fields!Proceeds.Value / Fields!DealBalance.Value,"n|a")

1 Ответ

1 голос
/ 10 марта 2020

Как объяснил TnTinMn, IIF всегда оценивает как истинную, так и ложную часть выражения.

Простое исправление - сделать что-то вроде РЕДАКТИРОВАТЬ Пересмотрено из-за обновления с OP

=IIF(Fields!Proceeds.Value<>"n|a",VAL(REPLACE(REPLACE(Fields!Proceeds.Value,",",""),"$","")) / Fields!DealBalance.Value,"n|a")

Это просто удаляет символ $ и запятые, а затем преобразует текст на число с помощью VAL (), если текст не является числом, он вернет ноль, что не приведет к ошибке, поскольку ложная часть вашего выражения выдаст 0 / DealBalance.

...