Агрегация строк в SSRS 2005 - PullRequest
10 голосов
/ 10 июня 2009

Использование BIDS 2005 для создания отчетов rdl. Я хочу, чтобы отчет агрегировал все строки в группе данных. Я искал что-то вроде конкатенации (поля! CompanyName.Value, ","), или соединения, или его эквивалента. Но ему придется перебирать все записи в данной области видимости.

Я создаю отчет о действиях пользователя в формате календаря (в виде календаря просмотра месяца в Google). Но если у пользователя есть несколько действий в один день, я хочу, чтобы все они отображались в одном и том же окне ». Является ли это проблемой, требующей агрегирования, или есть какой-то другой способ получить отчет SSRS, чтобы сделать это, я попытался найти способ заставить матрицу сделать это для меня, но я бью стены.

1 Ответ

10 голосов
/ 10 июня 2009

Обычный способ выполнения агрегированной конкатенации в SSRS - с помощью пользовательского кода. Смотрите здесь для примера:

http://blogs.msdn.com/suryaj/archive/2007/08/11/string-aggregation.aspx

Вот пользовательский код в базовой форме:

Private CurrGroupBy As String = String.Empty
Private ConcatVal As String = String.Empty
Public Function AggConcat(GroupBy as String, ElementVal as String) as String
    If CurrGroupBy = GroupBy Then
        ConcatVal = ConcatVal & ", " & ElementVal 
    Else
        CurrGroupBy = GroupBy 
        ConcatVal = ElementVal 
    End If
    Return ConcatVal 
End Function

После этого выражения на уровне группировки вы хотите отобразить:

=RunningValue(
     Code.AggConcat(
         Fields!YourFieldToGroupBy.Value
       , Fields!YourFieldToConcat.Value
       )
   , Last
   , "YourGroupName" 
   )

«YourGroupName» обычно представляет собой «table1_Group1», если это первая таблица и первая группа, созданная в отчете, и если вы не указали другое имя.

...