Использовать разделение в выражении 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")