Использовать разделение в выражении SSRS

Я ценю как 100 - XYZ в раскрывающемся списке SSRS Report.

Я хочу показать только XYZ в одном из текстовых полей.

Я использовал функцию Split, как показано ниже,

=IIF(Parameters!Name.Value <> "",
 "For Name" + Replace(Split(Parameters!Name.Value, "-").GetValue(1)," ", ""),
 "For All Names")

Приведенный выше пример работает нормально, но когда он переходит в другой случай, он всегда выдает ошибку.

Подскажите, пожалуйста, что не так с этим выражением? Или что-то не так с моим выражением? Особенно это показывает красная линия ниже (1) но, как я уже говорил, все работает нормально.

Примечание: я также пытался .GetValue(1) недавно, но безуспешно.

2 ответа

Решение

Как упоминал Джоннус в комментарии,

Это может показывать ошибку, так как есть проблема в другом месте в expressionне только False часть. SSRS оценивает все выражение перед его выполнением, поэтому, если где-то возникнет проблема, оно выдаст #Error

Я нашел альтернативное решение для достижения ожидаемого результата.

=IIF(Parameters!Name.Label = "All",
"For All Names",
"For Name " + Replace(Right(Parameters!Name.Label,
Len(Parameters!Name.Label) - InStr(Parameters!Name.Label, "-"))," ",""))

Я пытался так много раз с Split но я всегда терпел неудачу. Если у кого-то есть идея решить это с Split тогда было бы здорово. Пожалуйста, поделитесь своим мнением. Спасибо Джоннус за ваш быстрый ответ.

Похоже, вы пытаетесь получить все символы после - в исходной строке. Вместо того, чтобы делать SPLIT, было бы легче понять и поддерживать, если вы использовали RIGHT следующим образом

=iif(Parameters!Name.Value <> "",
 "For Name " & Right(Parameters!Name.Value, 
                     Instr(Parameters!Name.Value, " - ") -1),
 "For All Names")
Другие вопросы по тегам