Выражение SSRS для разделения и возврата каждого поля в строке, разделенной запятыми - PullRequest
0 голосов
/ 06 августа 2020

У меня есть строка, передаваемая в SSRS в формате ID::Description,ID2::Description2. Это может распространяться на любое количество строк, разделенных запятыми. Мне нужно иметь возможность:

  1. Разделить строки, чтобы отображались только Description
  2. Возвращать все возможные Descriptions, независимо от того, сколько их. Я знаю, что функция SSRS Split может разбивать запятую и возвращать с помощью .GetValue(<index>), но мне нужно иметь возможность возвращать все индексы с неопределенным количеством возможных строк.

Условие: I не может изменять данные на стороне базы данных, это должно быть сделано с помощью выражения внутри SSRS.

Версия SSRS: 13.0.5820.21

1 Ответ

0 голосов
/ 07 августа 2020

Мне удалось решить эту проблему с помощью функции.

Function FormatDocs(str as String) as String
     Dim rtn as String = ""
     Dim strElements = str.Split(",")
     For i as Integer = 0 to UBound(strElements)
          rtn = rtn + ParseCode(strElements(i), "D")
          If i <> UBound(strElements) Then
               rtn = rtn + ", "
          End If
     Next
     Return rtn
End Function

ParseCode была существующей у нас функцией, которая разбивает одну строку ID::Description на :: и возвращает Description.

Определение этой функции выглядит следующим образом:

Function ParseCode(codeValue As String, returnType As String) As String
Dim rtn As String = "" 
If Len(codeValue)  Then
   Dim codeElements = codeValue.Split(":")
   If returnType  = "C"  Then 
     rtn =codeElements(0) 
   Else
     rtn =rtn +  codeElements(2)  
   End If 
End If
Return rtn
End Function 
...