Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IZVP_lab-novi.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
16.14 Mб
Скачать

Створення звітів "master-detail"

Перетворимо створений звіт в звіт "master-detail". Для цього слід додати компонент TTable, встановити його властивість DatabaseName рівним BCDEMOS, властивість TableName рівним ORDERS.DB, а потім встановити властивість Active рівним true. Після цього встановимо властивість MasterSource рівним DataSource1. Потім виберемо властивість MasterFields, викликавши діалогову панель для установки зв'язку master/detail (рис. 4 ) і із списку доступних індексів виберемо CustNo. Потім виділимо ім'я поля CustNo в обох списках полів і натискуватимемо кнопку Add, а кнопку OK.

Рис. 2. Установка зв'язку master/detail

Додамо на форму компонент TDataSource, встановивши його властивість DataSet рівним Table2 . Потім додамо до форми новий компонент TQRBand (з ім'ям QRBand6). Після цього додамо компонент TQRDetailLink, призначений для установки зв'язків між джерелами даних в звітах, і встановимо його властивість DataSource рівним DataSource2. Потім встановимо його властивість Master рівним QuickReport, а властивість DetailBand рівним QRBand6. Властивість BandType компоненту QRBand6 автоматично прийме значення rbSubDetail.

Нарешті, помістимо два компоненти TQRDBText на QRBand6, встановимо їх властивості DataSource рівними DataSource2, а властивості DataField рівними OrderNo і AmountPaid. Зліва від них помістимо два компоненти TQRLabel з назвами цих полів.

Виберемо опцію Preview Report з контекстного меню компоненту QuickReport для попереднього перегляду звіту.

Відзначимо, що якщо компонент QuickReport не пов'язаний з компонентом DataSource, то при друці звіту виводиться тільки один запис з набору даних, що легко дозволяє друкувати поточний запис.

Відображення графічних і мемо-полів в звітах

QuickReport дозволяє створювати звіти з використанням будь-яких типів даних. Якщо замість визначення DataSource створити обробник події OnNeedData, можна за допомогою QuickReport надрукувати будь-які дані, міняючи властивості компонентів TQRLabel, що у багатьох випадках використовується для друку довільної інформації (іноді не має відношення до баз даних).

QuickReport не має власного компоненту для відображення графічних полів. Натомість можна використовувати стандартні компоненти Timage або TDBImage (рис. 3).

Рис. 3. Використання QRDBImage для відображення графічних полів

Для відображення мемо-полів можна використовувати компонент TQRDBText. Якщо вміст мемо-поля, що відображається за допомогою цього компоненту, не уміщається в один рядок, висота цього компоненту (і висота компоненту TQRBand, що містить його) в режимі попереднього перегляду і при друці звіту збільшується так, щоб усередині компоненту TQRDBText уміщався весь вміст memo-поля. Щоб уникнути накладення тексту, що вийшов, на інші елементи звіту при його друці, можна просто розміщувати компоненти TQRDBText, що відображають memo-поля, в нижній частині TQRBand.

Якщо таких memo-полів декілька і вони повинні бути розміщені один під одним, можна використовувати декілька компонентів TQRBand одного типу для одного запису. В цьому випадку друкуватися вони будуть в порядку їх створення.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]