3.5.4 Элемент управления Cross Tab (Перекрестная таблица) в отчетах BIRT
Третий, после Table и List, элемент управления с привязкой к данным в отчетах BIRT — это элемент управления Cross Tab (Перекрестная таблица). Этот элемент управления является аналогом одноименной Cross Tab в Crystal Reports, Matrix в Microsoft Reporting Services, а еще — сводной таблицы Excel. Он используется тогда, когда в отчете вам нужны агрегированные данные на пересечении строк и столбцов. Например, в строках — продукт, в столбцах — регион, где этот продукт продавался, а на пересечении продукта и региона — объем продаж. Или в столбцах — дата, в строках — сотрудник, а на пересечении информация о том, сколько часов отработал в этот день этот сотрудник. Пользователи очень любят называть отчеты с Cross Tab шахматками.
Проиллюстрируем работу с Cross Tab на примере.
Вначале — подготовка. В нашем примитивном наборе данных HREmpDept есть только одно измерение — наименование департаментов (Department_Name), которое можно поместить в строки или столбцы. Еще одного измерения пока нет, а с одним измерением Cross Tab не смотрится. Добавим его в виде таблицы Jobs и столбца Job_Title. Для этого в Data Explorer щелкаем правой кнопкой мыши по нашему набору данных HREmpDept и в контекстном меню выбираем Edit. Затем в открывшемся окне добавляем таблицу Jobs, связываем ее с таблицей Employees по Job_id и ставим флажок напротив столбца Job_Title (см. рис.)
Рис. 3.5.4.1 Добавление измерения Jobs в набор данных
Все, у нас есть Job_Title для второго измерения будущей перекрестной таблицы. А теперь в качестве задания посчитаем, сколько сотрудников на каждой должности работает в каждом департаменте.
Для этого:
- Добавляем в отчет BIRT элемент управления Cross Tab
- Перетаскиваем в него столбец из Data Set, например, в поле Drop data fields to define rows here только что добавленный в Data Set столбец Job_Title. Откроется окно построителя куба (см. рис. 3.5.4.2).
Рис. 3.5.4.2 Создание Data Cube для элемента управления Cross Tab в отчете BIRT
- Перетаскиваем в раздел Group and Summaries (группы и агрегаты) в раздел Groups в дополнение к столбцу Job_Title еще и столбец Department_Name, а в раздел Summary Fields — столбец Last Name и нажимаем на кнопку Finish.
- В окне дизайнера отчета перетаскиваем из созданного нами Data Cube требуемые поля в нужные места в Cross Tab. Например, Job_Tile может пойти в столбцы, Department_Name — в строки, а Last_Name (на самом деле Last_Name(Count)) — в значения (область Drop Data Field(s) to be summarized here).
Все, отчет BIRT с перекрестной таблицей готов. Можно запускать его на выполнение и любоваться полученным результатом. Выглядеть он может так, как показано на рис. 3.5.4.3.
Рис. 3.5.4.3 Пример отчета BIRT с элементом управления Cross Tab
Изначально, конечно, такой отчет не очень смотрится, и его еще потребуется доработать при помощи оформительских возможностей BIRT (в основном для полей данных), но механика вполне понятна.