Звіт з пов'язаних таблиць

Часто буває, коли недостатньо отримати звіт за даними тільки з однієї таблиці. І тут можна зробити двома способами:

1. Скористатися набором даних ADOQuery і за допомогою SQL-запиту отримати потрібні дані з двох таблиць.

2. Скористатися компонентом QRSubDetail, який спеціально призначений для отримання даних із зв'язаної таблиці. Цим компонентом ми і скористаємося.

Отже, QRSubDetail - це смуга, яка імпортує в звіт дані з підлеглої таблиці.

Створіть в проекті нову форму, назвіть її fRepTelephons, а модуль збережіть як RepTelephons. Відразу ж до цього вікна командою File -> Use Unit підключіть модуль з наборами даних DM, а до головного модулю підключіть щойно створений RepTelephons.

Встановіть на нову форму основу звіту QuickRep. Перевірте, щоб він не був усунений по відношенню до аркуша (властивості Left і Top рівні 0).

У властивості DataSet компонента-основи виберіть fDM.TLichData, тобто, таблицю з особистими даними.

Тепер створіть на основі смуги Page Header, Title, Column Header і Detail.

На верхню смугу Page Header встановіть по краях два компонента QRSysData, у властивості Data у першого виберіть qrsDateTime, а у другого qrsPageNumber. Крім того, переведіть в True параметр DrawBottom у властивості Frame смуги Page Header, щоб відокремити лінією заголовок.

Далі у нас йде смуга Detail, на якій нам потрібно розмістити три компонента QRDBText, які прив'язати до відповідних полях (не забудьте про властивості DataSet і DataField цих компонентів). Ще у властивості Frame смуги Detail бажано перевести параметр DrawTop в True, щоб кожен запис звіту відокремлювалася лінією.

Поки що все, що ми робили, було практично таким же, як в минулому звіті. Тепер додамо до звіту пов'язані дані з іншої таблиці. Встановіть компонент QRSubDetail - ця смуга повинна бути найнижчою. Спочатку потрібно вибрати головний по відношенню до цього компонент: у властивості Master виберіть QuickRepl. Крім того, смуга QRSubDetail повинна знати, звідки гортати дані, тому в властивості DataSet смуги виберіть fDM.TTelephones.

В результаті у вас повинна вийти форма, подібна до цієї:

Звіт з пов'язаних таблиць

Звіт з пов'язаних таблиць

Схожі статті