Как добавить заголовки групп строк в отчет в стиле без заголовка?

Для следующего запроса

SELECT *
FROM (VALUES ('England','London',9787426),
             ('England','Manchester',2553379),
             ('Scotland','Edinburgh',452194),
             ('Scotland','Glasgow',1168270),
             ('Wales','Cardiff',447287)) V(Country, City, Population)

Создание отчета из мастера отчетов (со следующими параметрами)

Параметры мастера отчетов

строит отчет как

Мастер отчетов создан

(Что Роберт Брукнер называет "без заголовка" здесь)

При столкновении с такой структурой отчета существует ли какой-либо простой / надежный способ преобразовать его в формат, указанный ниже (с заголовком страны за пределами тела табликса)?

т.е. без необходимости удалять существующую группу, а затем повторно добавлять ее?

введите описание изображения здесь


person Martin Smith    schedule 06.06.2014    source источник
comment
Я не уверен, что это доступно в построителе отчетов, но похоже, что вы хотите сгруппировать по стране и городу и добавить FIRST (Город) и MAX (Население) в качестве полей сведений.   -  person Ross Bush    schedule 07.06.2014
comment
@Irb Мне непонятно, как это поможет. Вы можете уточнить? Если мой вопрос не совсем ясен, я просто спрашиваю, как перейти с Ячейки, объединенные по вертикали в ячейки, объединенные по вертикали без удаления и добавления обратно в исходной группировке по стране. (или это просто невозможно - по крайней мере, без ручного редактирования RDL)   -  person Martin Smith    schedule 07.06.2014


Ответы (4)


Метод 0:
Если есть существующая таблица (или с помощью мастера), нет лучшего способа сделать это, чем тот, который вы объяснили. Удалив и прочитав группу.

Метод 1.
Табликс можно создать с нуля в дизайнере отчетов. Добавьте табликс, установите набор данных и добавьте группу.

Метод 2:
Другой способ - изменить XML-код (RDL).

Очистка вашего дизайна: удалите вторую строку и добавьте элемент данных Country в строку детализации, чтобы ваш дизайн выглядел примерно так, без вертикального слияния и пунктирных линий.

введите описание изображения здесь

Чтобы добавить заголовки групп, как вы хотите, с помощью xml-кода, вам нужно переместить TablixCell с TablixRow на TablixRowHierarchy .:

  • Вырежьте TablixCell фрагмент под _5 _-> _ 6_, содержащий данные о вашей стране, и сохраните его в отдельном блокноте / документе.

  • Удалите соответствующий TablixColumn в TablixColumns

  • Переименовать узелTablixCell в TablixHeader

  • Добавьте <Size>1in</Size> фрагмент между TablixHeader и CellContents

  • Вставьте фрагмент TablixHeader под TablixRowHierarchy -> TablixMembers -> TablixMember между SortExpression и TablixMembers.

  • Удалите один из <TablixMember /> фрагментов под TablixColumnHierarchy. Он должен соответствовать количеству столбцов в отчете, за исключением столбцов перед пунктирными линиями (или перед пунктирной группой).

Элемент TablixHeader определяет заголовок группы.

Элемент TablixCells определяет список ячеек в строке основного раздела табликса.

Вот ссылка на спецификации RDL . У него нет версии 2012 года, но версия 2008 года по-прежнему выглядит хорошо.

Вот схематическая диаграмма Tablix из спецификаций RDL. Когда ваши данные находятся в TablixHeader, тогда столбцы будут слиты по вертикали, а пунктирные линии будут за пределами строки tablix. Когда он находится в TablixCells, он является частью TablixRow.

введите описание изображения здесь

person Anup Agrawal    schedule 10.06.2014

Кажется, нет простого способа добавить столбцы категорий назад.

Самый простой способ, который я знаю, - это добавить родительскую группу для того же поля в группу строк, для которой вы хотите вернуть столбец. Это создаст новый столбец категории, и вы сможете удалить старую группировку. Просто удалите только группу, а не связанные ячейки и столбцы.

В вашем случае вы должны добавить родительскую группу в поле Country к существующей Country группировке. Теперь у вас должен быть столбец категории для страны, и вы можете удалить исходную Country группировку.

person Mike D.    schedule 07.06.2014
comment
Хорошо спасибо. Полезная ссылка. Похоже, мне не хватало более очевидного варианта. Убедительно, что это не так! Я пока не буду отмечать это как ответ на вопрос, если есть альтернативные подходы. Недостатком этого подхода является то, что любые свойства настраиваемой группы в исходной группе необходимо будет повторно применить к вновь созданной группе. Я подозреваю, что этого может быть неизбежно. - person Martin Smith; 07.06.2014
comment
Вы можете попробовать удалить только что созданную группу вместо старой, но не удаляя связанные столбцы. Это оставит столбец категорий, но группировка в нем может больше не работать должным образом. - person Mike D.; 07.06.2014
comment
Я пробовал это, и вы правы, это не сработает так, как я ожидал. В столбце страны просто показана Англия для данных моего примера со всеми городами, указанными в этой группе. - person Martin Smith; 07.06.2014

Я бы выполнил следующие шаги:

  1. В разделе «Группы строк» ​​щелкните правой кнопкой мыши запись table1_Details_Group и выберите «Добавить группу / родительскую группу».
  2. В поле «Группировать по» выберите «Страна». Нажмите ОК.
  3. В разделе «Группы строк» ​​щелкните правой кнопкой мыши новую запись «Страна» и выберите «Удалить группу».
  4. Выберите Удалить только группу. Нажмите ОК.
  5. Щелкните правой кнопкой мыши исходный столбец страны и выберите Удалить столбцы.
  6. Щелкните правой кнопкой мыши строку "Группа стран" и выберите "Удалить строки".

Вот окончательный результат:

Группы строк SSRS

person Mike Honey    schedule 10.06.2014

Легкий способ добавить заголовок - это Добавить итог -> Перед.

введите описание изображения здесь

Это добавит новую строку перед деталями группы.

person Alessandro Bernardi    schedule 26.05.2020