2013-09-27 2 views
2

Я бегу SSRS для Server 2008 R2 и создание отчетов в Report Builder 3.0SSRS Row Консолидация

У меня есть этот отчет под названием пропавшие недели, который показывает мне недели от года, где мы пропускаем финансовые отчеты от наших компаний , Сейчас отчет показывает все недостающие недели в отдельных строках отчета, например, так:

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 сервере.

ответ

2

Вы можете использовать функцию LookupSet, чтобы помочь с этим.

Вот мой тест Dataset:

enter image description here

Я добавил вычисляемое поле называется CmpYear в Dataset, с выражением:

=Fields!Cmp_code.Value & CStr(Fields!Year.Value) 

Мы будем использовать это позже.

Теперь сделайте свой доклад таблицу:

enter image description here

Вы можете видеть, что есть группы рядов, основанные на Group, Cmp_code и Year. Я предположил, что town и Owner основаны на Cmp_code.

Наиболее важной частью является выражение для Week:

=Join(LookupSet(Fields!CmpYear.Value, Fields!CmpYear.Value, Fields!Week.Value, "DataSet1") 
    , ",") 

Поскольку мы заинтересованы во всех недель для конкретной компании/год комбинации, мы используем вычисляемое поле, основываясь на них в качестве ключа поиска - с этим LookupSet возвращает массив всех недель в частности компании/год группы, то мы используем Join превратить массив в ограниченном списке:

enter image description here

Выглядит неплохо для меня. Конечно, вам, возможно, придется немного изменить свои базовые данные, но, надеюсь, это дает вам полезные идеи.

+0

Это замечательно. Вы знаете, как ограничить результаты только cmp_code с x количеством отсутствующих недель? – d90

+0

Конечно, я хотел бы начать с определения видимости группы в свойствах Группы; т. е. установите 'Hidden' как нечто вроде' = IIf (Count (Fields! Week.Value)> 1, False, True) '. –

0

Создать группу столбцов в неделю.

enter image description here

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