2.3.5. Группировка записей отчета Crystal Reports
2.3.5. Группировка записей отчета Crystal Reports
По умолчанию записи в отчете располагаются в том порядке, в которой они располагаются в источнике данных (файле Excel). Очень часто требуется расположить записи в определенном порядке, например покупателей из одного города расположить вместе. Такая операция называется группировкой записей - в одну группу включаются записи с одинаковым значением поля, по которому производится группировка. Сгруппировав
записи, можно суммировать данные в каждой группе, например подсчитать
общую сумму продаж или количество покупателей в каждом городе.
Группу можно добавить с помощью вкладки Group диалога Standart Report Expert (CM. выше). При создании каждой группы в отчет добавляются новые секции - Group header и Group Footer. Можно сгруппировать информацию по полям отчета или даже по полям, которые не входят в отчет.
Для вставки группы в уже существующий отчет следует выбрать пункт меню Insert/Group или щелкнуть на соответствующей кнопке в дополнительной панели инструментов. Открывается диалог Insert Group (рис. 2.3.19).
Рис. 2.3.19. Диалог Insert Group
Для вставки группы необходимо в верхнем списке выбрать поле для группирования и порядок, в котором группы должны показываться например, для рассматриваемого отчета можно выбрать группировку по полю Arrow Sourse (рис. 2.3.20). Порядок сортировки групп можно установить во втором списке выбора.
Рис. 2.3.20. Фрагмент отчета, в котором данные сгруппированы по именам работ — источников стрелок
Установка опции Keep group together предотвращает разрыв группы на разные страницы.
Использование опции Repeat group header on each new page позволяет повторить заголовок группы на каждой странице, если группа располагается на разных страницах.
Группы могут располагаться в порядке возрастания - in ascending order (от А до Z и от 1 до 9) и в порядке убывания - in descending order (от Z до А и от 9 до 1). При выборе in original order сортировка групп не производится.
Сортировка in specified order позволяет установить группировку по признаку, который не хранится в источнике данных.
Новая группа автоматически становится внутренней. Если в отчете уже существовала группа, необходимо следить за тем, чтобы логика группировки была правильной. Изменить порядок групп несложно. Для этого, находясь на вкладке Design, нужно переместить методом drag&drop заголовки секций групп.
Crystal Reports позволяет производить группировку на основе данных, образующих иерархическую рекурсию. Иерархическая рекурсия - это структура данных, в которой таблица ссылается на саму себя. Иерархическая рекурсия представляет собой способ хранения взаимосвязей между объектами, когда они образуют зависимость в виде дерева. Для отчетов, создаваемых на основе данных функциональной модели, такой отчет представляет наибольший интерес. Действительно, и стрелки и работы образуют деревья - каждая работа может быть декомпозирована на несколько других работ, каждая стрелка может быть разветвлена на несколько других стрелок.
Рассмотрим модель IDEF0, показанную на рис. 2.3.21. Стрелка "Звонки клиентов" разветвляется на стрелки "Запрос информации о ценах" и "Заявки на заказ". В свою очередь, стрелка "Заявки на заказ" разветвляется на стрелки "Заявки на настольные компьютеры" и "Заявки на ноутбуки".
Рис. 2.3.21. Пример диаграммы IDEF0 с разветвляющимися стрелками
Crystal Reports позволяет создавать древовидный отчет по стрелкам или работам. Рассмотрим создание древовидного отчета по стрелкам. Создадим отчет по стрелкам, как описано в 2.3.1, и включим в него поля Arrow Name и Branch From. Отчет экспортируем в MS Excel и на основе файла данных создадим стандартный отчет, как описано в 2.3.2. Затем необходимо создать группировку по первичному ключу (идентификатору) таблицы (Arrow Name), затем перейти в меню Report/Hierarchical Grouping Options. В открывшемся диалоге Hierarchical Options (рис. 2.3.22) следует включить опцию Sort Data Hierarchically и указать родительское поле группировки -Parent ID Field (в примере - Branch From).
Рис. 2.3.22. Диалог Hierarchical Options
В поле Group Ident указывается смещение вправо группы нижнего уровня отчета в сантиметрах. Уровень вложений не ограничен. Результат -отчет по стрелкам с иерархической группировкой показан на рис. 2.3.23.
Звонки клиентов
Запрос информации о иенах Заявки на заказ
Заявки на настольные компьютеры
Заявки на ноутбуки
Рис. 2.3.23. Пример отчета с иерархической группировкой