Подключение к источнику данных в предыдущем разделе мы создали. Следующее, что нужно сделать — создать Data Set, набор данных, который будут использоваться в отчете (или несколько наборов данных, если нужно).

Все Data Set можно разделить на две категории: Query Data Set (наборы данных, работающий с запросом) и Stored Procedure Data Set (наборы данных, работающих с хранимыми процедурами). В этом разделе мы рассмотрим создание Query Data Set, а Stored Procedure Data Set будет рассмотрен в следующем разделе.

Для демонстрации поставим задачу. Предположим себе, что у нас на источнике данных (в нашем случае — на Microsoft SQL Server, но это не принципиально) имеется база данных HR01 с таблицами HR.Employees и HR.Departments.

Обе таблицы представлены на рис. 3.4.1.1 и 3.4.1.2.

Рис. 3.4.1.1 Таблица HR.Employess (представлена частично)

Рис. 3.4.1.2 Таблица HR.Departments

Обе таблицы связаны по полю Department_id.

Задача состоит в следующем: нам нужно получить для отображения в отчете информацию из столбцов First_Name и Last_Name в таблице Employees и Department_Name в таблице Departments, то есть создать Data Set с этими столбцами.

Пошагово решение этой задачи выглядит следующим образом:

  1. В окне Data Explorer в контекстном меню для контейнера Data Sets выбираем New Data Set (см. рис. 3.4.1.3)

Рис. 3.4.1.3 Создание нового набора данных в BIRT

2. На следующем экране выбираем только что созданное подключение к данным и присваиваем набору данных информативное имя (см. рис. 3.4.1.4)

Рис. 3.4.1.4 Выбор Data Source (источника данных) для Data Set (набора данных)

3. На следующем экране, который называется SQL Select Query (см. рис. 3.4.1.5), необходимо определить для набора данных запрос SQL. Этот запрос будет выполнен на источнике данных (в нашем случае — SQL Server) и принесет данные, которые будут использованы в отчете.

Рис. 3.4.1.5 Окно запроса SQL набора данных (Data Set) в отчете BIRT

В принципе, на этом экране можно в верхней части просто ввести текст запроса SQL, который вернет нужные нам данные. Но интереснее воспользоваться возможностями построителя запросов BIRT для генерации запроса прямо в этом окне. Надо сказать, что при работе с запросами с большим количеством джойнов построитель запросов может сэкономить немало времени. Пошагово создание запроса в этом окне выглядит так:

Щелкаем правой кнопкой мыши по средней части окна и в контекстном меню выбираем Add Table. В открывшемся окне со списком таблиц на источнике данных выделяем две нужные нам таблицы Employees и Departments (см. рис. 3.4.1.6) и нажимаем на кнопку OK.

Рис. 3.4.1.6 Выбор таблиц в построителе запросов BIRT

После этого таблицы будут добавлены в среднее окно. К сожалению, построитель запросов BIRT не определяет связи между таблицами автоматически, как это делают Microsoft Reporting Services или Crystal Reports. Связи придется создавать вручную.

В нашей ситуации мы свяжем таблицы по столбцу Department_id. Само связывание производится очень просто: достаточно перетащить столбец Department_id из таблицы Employees на столбец Department_id в таблице Departments. Результат будет выглядеть так, как представлено на рис. 3.4.1.7.

Рис. 3.4.1.7 Связывание таблиц в построителе запросов BIRT

Осталось установить флажки напротив нужных столбцов в таблицах (в нашем случае — это столбцы First_Name и Last_Name в таблице Employees и столбец Department_Name в таблице Departments) — и запрос готов. Осталось только нажать на кнопку Finish, чтобы вернуться в мастер создания Data Set.

На следующем экране мастера создания Data Set (см. рис. 3.4.1.8), который называется Output Columns (Столбцы на выходе) можно просмотреть столбцы и настроить для них псевдонимы, если по каким-то причинам исходные имена столбцов вас не устраивают.

Рис. 3.4.1.8 Просмотр возвращаемых столбцов (Output Columns) в свойствах набора данных в отчете BIRT

На следующем экране, который называется Computed Columns (вычисляемые столбцы) можно определить вычисляемые столбцы, которые будут возвращаться в наборе данных. В вашем распоряжении — все функции JavaScript плюс немаленький набор функций BIRT (см. рис. 3.4.1.9).

Рис. 3.4.1.9 Создание вычисляемых столбцов (computed columns) в наборе данных отчета BIRT

А, можно, конечно, и не возиться с вычисляемыми столбцами в Data Set, а определить их непосредственно в запросе: в разных ситуациях удобнее по разному.

На вкладке Parameters можно определить параметры для Data Set, и привязать их к параметрам отчета (Report parameters), значения для которых при запуске отчета введет или выберет пользователь. По работу с параметрами будет рассказано в отдельном разделе.

На экране Filters можно определить фильтры, которые будут использоваться для набора данных, при помощи выражений BIRT. Про фильтры, которые используются практически в каждом отчете, опять-таки будет рассказано отдельно.

На экране Property Binding можно привязать свойства Data Set к специальному запросу, чтобы можно было динамически его изменять. Эта возможность используется нечасто, и, чтобы не перегружать этот раздел, и про эту возможность расскажем отдельно.

На экране Settings (смотри рис. 3.4.1.10) можно настроить некоторые параметры для набора данных BIRT.

Рис. 3.4.1.10 Вкладка Settings свойств набора данных отчета BIRT

  • Fetch all rows from data source (Получить все строки с источника данных) и сопутствующий параметр Max number of rows to fetch from data source (Максимальное количество строк для получения с источника данных) — очень нужные параметры, которые часто используются при разработке/отладке отчетов. Иногда бывает так, что с источника данных приходят десятки и тысячи строк, и из-за этого отчет открывается медленно, что мешает при разработке. А для проверки работоспособности отчета все данные могут быть и не нужны. Поэтому на время разработки/тестирования устанавливаем здесь ограничение на количество возвращаемых записей (например, 100), а после завершения это ограничение снимаем;

  • Locale of character string values (Язык для строковых значений) — можно здесь вручную определить кодировку для строковых данных в Data Set, чтобы гарантировать правильную сортировку;

  • Ordering of Null values (Порядок для пустых значений) — можно определить, будут ли пустые значения считаться наименьшими, наибольшими или вообще игнорироваться.

На экране Preview Results можно просмотреть данные, которые возвращает Data Set, чтобы убедиться, что он возвращает то, что нам нужно.

Все, Data Set (набор данных) BIRT создан, и возвращаемые им данные можно использовать в отчете.

Перейти к следующему разделу