Инвертировать строки заголовков вложенных групп столбцов в матричном элементе управления - PullRequest
1 голос
/ 11 октября 2010

В матричном элементе управления я группирую столбцы по «размеру», а затем по «цвету».Полученная таблица выглядит следующим образом:

default grouping

Мне нужно инвертировать строки заголовка, чтобы таблица выглядела следующим образом:

grouping

Значения из дочерней группы должны отображать выше соответствующее значение из родительской группы.

1 Ответ

0 голосов
/ 11 октября 2010

Может быть, если сделать родительскую группу комбинированной группой по размеру и цвету, однако отобразятся только цвета, а затем группа по размеру для дочерней / подгруппы.

Обновление:

Хорошо, так чтоЯ создал небольшой набор данных, но я не уверен, что набор данных похож на то, что вы получаете, но, возможно, он может подтолкнуть некоторые другие идеи о том, как вы можете манипулировать данными в SQL, чтобы получить то, что вы хотите в отчете.

Сначала я просто создал несколько операторов SELECT ... UNION ALL, но после некоторой игры я все еще не мог получить ничего похожего на требуемый визуальный вывод / группировку.Итак, вот что я использовал:

with CTE (Color, Size, CSGroup, Amt) As (
select 'Red' As color, 'Small' as size, 'RedSmall' as CSGroup, 1 as Amt union all
select 'Red' As color, 'Small' as size, 'RedSmall' as CSGroup, 1 as Amt union all
select 'Red' As color, 'Medium' as size,'RedMedium' as CSGroup, 1 as Amt union all
select 'Red' As color, 'Medium' as size, 'RedMedium' as CSGroup, 1 as Amt union all
select 'Red' As color, 'Medium' as size, 'RedMedium' as CSGroup, 1 as Amt union all
select 'Red' As color, 'Small' as size, 'RedSmall' as CSGroup, 1 as Amt union all

select 'Yellow' As color, 'Small' as size, 'YellowSmall' as CSGroup ,1 as Amt union all
select 'Yellow' As color, 'Small' as size, 'YellowSmall' as CSGroup ,1 as Amt union all
select 'Yellow' As color, 'Large' as size, 'YellowLarge' as CSGroup ,1 as Amt union all
select 'Yellow' As color, 'Large' as size, 'YellowLarge' as CSGroup ,1 as Amt union all
select 'Yellow' As color, 'Large' as size, 'YellowLarge' as CSGroup ,1 as Amt union all
select 'Yellow' As color, 'Medium' as size, 'YellowMedium' as CSGroup ,1 as Amt union all
select 'Yellow' As color, 'Medium' as size, 'YellowMedium' as CSGroup ,1 as Amt union all

select 'Blue' As color, 'Medium' as size, 'BlueMedium' as CSGroup, 1 as Amt union all
select 'Blue' As color, 'Medium' as size, 'BlueMedium' as CSGroup, 1 as Amt union all
select 'Blue' As color, 'Medium' as size, 'BlueMedium' as CSGroup, 1 as Amt union all
select 'Blue' As color, 'Small' as size, 'BlueSmall' as CSGroup, 1 as Amt union all
select 'Blue' As color, 'Large' as size, 'BlueLarge' as CSGroup, 1 as Amt union all
select 'Blue' As color, 'Large' as size, 'BlueLarge' as CSGroup, 1 as Amt union all

select 'Green' As color, 'Medium' as size, 'GreenMedium' as CSGroup, 1 as Amt union all
select 'Green' As color, 'Medium' as size, 'GreenMedium' as CSGroup, 1 as Amt union all
select 'Green' As color, 'Large' as size, 'GreenLarge' as CSGroup, 1 as Amt union all
select 'Green' As color, 'Large' as size, 'GreenLarge' as CSGroup, 1 as Amt union all
select 'Green' As color, 'Large' as size, 'GreenLarge' as CSGroup, 1 as Amt union all
select 'Green' As color, 'Small' as size, 'GreenSmall' as CSGroup, 1 as Amt union all
select 'Green' As color, 'Small' as size, 'GreenSmall' as CSGroup, 1 as Amt)
Select Color, Size, SUM(Amt) As Amount From CTE group by Color, Size

Вы можете игнорировать CSGroup Я не заканчивал тем, что использовал его.

Так что с этим, это одал мне «взгляд» того, что вам нужно в наборе данных.

Я выдал матрицу и сгруппировал по размеру и цвету (=Fields!size.Value & Fields!color.Value)

I Затем вставил группу и сгруппировалпо размеру (=Fields!size.Value)

В «верхней» группе столбцов у меня есть =Fields!color.Value

Во второй группе столбцов у меня есть =First(Fields!Size.Value)

в данныхтекстовое поле У меня есть =Sum(Fields!Amount.Value)

Затем щелкните правой кнопкой мыши на второй группе столбцов и установите флажок «Скрыть дубликаты».Затем я выбрал Dataset1 в раскрывающемся списке.

Единственное, что мне не удалось сделать, это центрировать размер, поскольку я не смог объединить текстовые поля.

Grouping Example

...