ССРС консолидации подряд
Я запускаю SSRS для сервера 2008 R2 и создаю отчеты в Построителе отчетов 3.0
У меня есть отчет под названием "недостающие недели", который показывает мне недели из года, когда мы пропускаем финансовые отчеты наших компаний. Прямо сейчас отчет показывает все недостающие недели в отдельных строках отчета, например:Group Cmp_code town Owner Year Week
001 004 townname mr ozzy 2012 50
52
2013 25
26
005 townname mr bark 2013 32
33
002 235 townname mr woof 2013 17
ETC..
Возможно ли, чтобы все недели отображались в одной строке для этой группы и cmp_code?
Group Cmp_code town Owner Year Week
001 004 townname mr ozzy 2012 50, 52
2013 25, 26, etc...
005 townname mr bark 2013 32, 33, etc...
002 235 townname mr woof 2013 17
В идеале я хотел бы сделать это в SSRS и не изменять то, что я сделал на sql server.
2 ответа:
Вы можете использовать функцию LookupSet, чтобы помочь в этом.
Вот мой тестовый набор данных:
Я добавил вычисляемое поле под названием
CmpYear
В набор данных с выражением:=Fields!Cmp_code.Value & CStr(Fields!Year.Value)
Мы будем использовать это позже.
Теперь составьте таблицу отчета:
Вы можете видеть, что существуют группы строк, основанные на
Group
,Cmp_code
иYear
. Я предположил, чтоtown
иOwner
основаны наCmp_code
.Самая важная часть-это выражение для
Week
:Поскольку нас интересуют все недели для конкретной комбинации компания / год, мы используем вычисляемое на их основе поле в качестве ключа поиска-с помощью этого=Join(LookupSet(Fields!CmpYear.Value, Fields!CmpYear.Value, Fields!Week.Value, "DataSet1") , ",")
LookupSet
возвращает массив всех недель в конкретной группе компания / год, затем мы используемJoin
, чтобы превратить массив в разделенный список:Выглядит довольно хорошо для меня. Конечно, вы можете немного изменить свои базовые данные, но, надеюсь, это даст вам некоторые полезная идея.