При разработке отчетов в системе компоновки данных (СКД) часто возникает задача компактного отображения множества числовых показателей. По умолчанию СКД позволяет выводить ресурсы либо строго по горизонтали (в одну строку/колонку), либо строго по вертикали (друг под другом). Однако стандартные параметры «Расположение ресурсов» и группировка полей по папкам не позволяют разбить список ресурсов, например, из 9 полей на двумерную матрицу 3х3 внутри одного пересечения строк и колонок таблицы. Разберем, как обойти это ограничение и настроить произвольное расположение полей с сохранением механизма расшифровки.
Проанализируем типовую попытку решения через объединение полей в папки на вкладке «Настройки». Параметры «Расположение ресурсов» (варианты: Горизонтально, Вертикально, В отдельной колонке) применяются глобально ко всей коллекции полей группировки или таблицы. Создание вложенных папок позволяет лишь сгруппировать поля под общими заголовками, но не переносит часть показателей на новую строку внутри единой ячейки пересечения строк и колонок таблицы. Все поля всё равно выстраиваются либо в одну сплошную строку, либо в одну колонку.
Для создания произвольной геометрии вывода показателей в СКД предусмотрен специализированный механизм — Макет ресурсов. Он позволяет вручную нарисовать область таблицы произвольного размера и привязать к каждой ячейке конкретное поле ресурса.
Разберем пошаговый порядок настройки макета ресурсов:
Итог или Общий итог.Параметр или Шаблон.Показатель1, Показатель2 и так далее).РасшифровкаПоказатель1).СуммаОборот, КоличествоОборот) или поля группировки. Для параметров расшифровки укажем то же самое поле или служебное выражение расшифровки.Посмотрим на особенности работы макетов: при таком подходе СКД жестко позиционирует поля в соответствии с нарисованным шаблоном, позволяя компоновать ресурсы сетками любого размера.
Выясним, какие особенности следует учитывать при выборе этого метода:
Если макеты не подходят из-за необходимости динамически скрывать/отображать ресурсы или гибко управлять условным оформлением, рассмотрим альтернативный вариант — нормализацию показателей на уровне набора данных.
ОБЪЕДИНИТЬ ВСЕ преобразуем 9 отдельных полей в строки с полями ИмяПоказателя, ЗначениеПоказателя, а также служебными координатами НомерСтрокиСетки (значения 1, 2, 3) и НомерКолонкиСетки (значения 1, 2, 3).НомерСтрокиСетки и колонок по полю НомерКолонкиСетки.ЗначениеПоказателя.Этот способ позволяет получить динамическую сетку показателей стандартными механизмами группировки без создания жестких статических макетов.