Ошибка в выражении SSRS для ложного условия - PullRequest
0 голосов
/ 10 октября 2018

Я хочу сгенерировать мою строку в следующем формате:

Vancouer должен отображаться как -> ( V) anc-ouer
Roberts Cut-Off Road -> Roberts Cu(t-O) ff-Road ... и т. Д.Поэтому для последних 4 символов я использую:

Right(Fields!NAME.Value, 4)

для средней части, которую я использую IIF:

IIF(Len(Fields!NAME.Value) < 10, 
Left(Fields!NAME.Value,. 
(Len(Fields!NAME.Value)-7)), 
 Mid(Fields!NAME.Value,Len(Fields!NAME.Value)-9,3))

Но приведенное выше условие IIF дает мне #Error всякий раз, когда длинаменее 10. Что может быть возможным решением для этого?Или было бы лучше, если бы я мог знать выражение для генерации полного формата самым простым способом.

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Чтобы компенсировать проблему, упомянутую RegBes , используйте дополнительный IIF, чтобы обойти ошибку для ложной части исходного IIF.

IIF(Len(Fields!NAME.Value) < 10, 
        Left(Fields!NAME.Value, Len(Fields!NAME.Value) - 7), 
        Mid(Fields!NAME.Value, Len(Fields!NAME.Value) - IIF(Len(Fields!NAME.Value) < 10, 0, 9), 3) 
    )

Это вычтет 0, еслиLEN меньше 10. Первый IIF гарантирует, что этот код не отображает значение, а обходит проблему IIF, оценивая ИСТИННЫЕ и ЛОЖНЫЕ части ИИФ.

0 голосов
/ 10 октября 2018

Даже если у вас есть условие для проверки на 10 символов, SSRS по-прежнему оценивает ложную часть, поэтому вы получаете ошибку, обычно это происходит при попытке избежать деления на ноль ошибок.дополнительная информация здесь

разделить на ноль / ноль обходной путь

другая статья

...