Как создать Master-Detail отчет из несвязанных таблиц

Нередко появляется необходимость в создании отчета типа «Главный – Подчиненный» или «Master – Detail». Это значит, что главная таблица выступает в роли группирующей. Одной записи главной таблицы соответствует несколько записей из подчиненной.

Для создания такого отчета потребуется создать связь между таблицами по ключу.

Итак, создаем пустой отчет. Добавляем источник данных, в котором будет две таблицы.

 

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

 

Первичный ключ таблицы «Categories» это «CategoryID». У подчиненной таблицы «Products» есть одноименное поле. Обычно внешний ключ именуют также как и первичный ключ главной таблицы, но обязательно. Например, в подчиненной таблице это поле могло бы называться «CatID» или просто «Category».

Чтобы создать связь между таблицами, необходимо открыть меню «Actions» (Действия) в окне «Данные»:

 

Выбираем опцию «NewRelation» (Новая связь).

 

В редакторе связи выбираем «Главную» и «Подчиненную» таблицы:

 

Ниже выбираем поля для связи. Для главной таблицы это  «CategoryID». В подчиненной таблице ключевое поле для связи также называется «CategoryID».

 

Необходимо отметить, что после добавления полей, добавилась еще одна строка для добавления связи по другим полям. Это нужно в случае, когда связь между таблицами осуществляется по нескольким полям. В данном конкретном случае в этом нет необходимости.

 Закрываем окно нажатием кнопки «Ок».

 

В таблице «Products» появилась связь –  «Categories_Products». Если развернуть ее, вы увидите поля из таблицы «Categories».

Теперь рассмотрим шаблоны отчета.

Стандартный отчет имеет один бэнд  «Данные». Нам потребуется еще один, специальный подчиненный бэнд  «Данные».

Чтобы добавить его, нажимаем правой кнопкой мыши на бэнд «Данные».

 

Теперь нужно выбирать из меню пункт «AddDetailDataBand» (Добавить детальный бэнд «Данные»).

Добавим заголовочный бэнд для детального бэнда «Данные». Изменяем «Reports» (Отчет) и выбираем «Configurebands» (Настроить бэнды).

 

Выбираем детальный бэнд и нажимаем кнопку «Add» (Добавить).

Из открывшегося списка выбираем «Header» (Заголовок).

 

Теперь, размещаем поля из таблицы «Categories» на главном бэнде «Данные» и поля таблицы «Рroducts» на детальный бэнд «Данные».

Получился вот такой шаблон:

 

Запускаем отчет:

В данной статье был рассмотрен алгоритм создания отчетов типа Master - Detail, требующий создания связи между нужными таблицами, причем уровень вложенности бэндов не ограничен. То есть,  детальный бэнд «Данные» может также иметь детальный бэнд и так далее.