2015-06-22 2 views
0

У меня есть параметр называется Analyst группу в следующем формате: [Dimension].[Analyst Group].&[Nl.Workplace.Foundation]SSRS - Как получить часть строки

Я хочу передать этот параметр другому сообщению, для фильтрации данных. Его параметр с несколькими значениями. Но другой отчет только принимает его в этом формате: [KanBan].[Analyst Group].&[Nl.Workplace.Foundation]

Так им пытаются изолировать «Nl.Workplace.Foundation», так что я могу сделать следующее вещь в Go To Сообщить выражение параметра: ="[KanBan].[Analyst Group].&["& --Isolated analyst group-- &"]" для создания желаемого формат.

Так что мне нужно извлечь часть между ними. & [и]

Но я действительно не знаю, как изолировать эту часть строки.

+0

Все ли значения в этом формате? Существуют ли пустые строки? –

ответ

0

Найденное решение! Если я просто использую Parameter.label вместо Parameter.value, он автоматически делает то, что я хочу!

0

Другое решение было найдено, но я все равно отвечу на первоначальный вопрос. Это может помочь.

Так что мне нужно извлечь часть между ними. & [and]

Вы можете использовать регулярное выражение. Это может быть не самый быстрый способ, но он может справиться с большинством ситуаций.

Итак, давайте предположим, у вас есть строка, содержащая:

[Dimension].[Analyst Group].&[Nl.Workplace.Foundation] 

И вы хотите, чтобы получить следующую строку:

Nl.Workplace.Foundation 

Просто использовать следующее выражение:

=System.Text.RegularExpressions.Regex.Match("[Dimension].[Analyst Group].&[Nl.Workplace.Foundation]", "\.&\[(?<NWF>[^]]+)\]").Groups("NWF").Value 

В выражение, замените строку ввода вашими динамическими значениями, например, например:

=System.Text.RegularExpressions.Regex.Match(Fields!Dimension.Value & "." & Fields!AnalystGroup.Value, "\.&\[(?<NWF>[^]]+)\]").Groups("NWF").Value 

Веда формулы как можно более простая, так что вы можете легко адаптировать его, с, скажем, обращение случая, когда входная строка не будет иметь матч (с выше запроса он будет возвращать #Error) ,

Вы можете сделать это, добавив IIF() или лучше, используя пользовательскую функцию, которую вы можете повторно использовать в нескольких местах и ​​уменьшите длину выражения.

Смежные вопросы