Створення звітів до БД у Delphi

У FastReport порожній звіт подано у вигляді аркуша паперу. На будь-яке місце аркуша можна покласти об'єкти, які можуть відображати різну інформацію (текст, графіка) та визначати зовнішній вигляд звіту. Піктограми даних об'єктів розташовані вздовж лівого краю вікна дизайнера та розміщуються на аркуші паперу аналогічно до того, як компоненти Delphi розміщуються на формі. З налаштуваннями цих об'єктів пропонується поекспериментувати самостійно.

Як і в попередніх версіях Delphi (і в MS Access), різні об'єкти звіту зручно об'єднувати в групи або «смуги» «band». Кожна смуга може відповідати одному з 6 рівнів угруповання даних (Master Data, Detail Data, Subdetail Data, Data 4 th level, Data 5 th level, Data 6 th level), крім того, для покращення зовнішнього вигляду звіту визначено наступні типи груп (див. таблицю 3):

Таблиця 3. Компоненти звіту FastReport

В якості SQL компонента DataModule1.TempSQL напишіть наступний найпростіший запит

Select * from session_result;

Встановіть властивість компонента DataModule1.TempSQL.Active у True, а властивість компонента DataModule1.frxDBDataset.UserName у vedom_1

На цьому підключення звіту до БД закінчено. Вам залишається створити власне макет звіту.

Перейдіть на закладку «Page1» та додайте на робоче поле звіту дві смуги: ReportTitle та MasterData. На смугу ReportTitle помістіть компонент TextObject (піктограма у вигляді літери A на панелі об'єктів). Відкриється діалогове вікно, в якому ви можете набрати текст стандартної «шапки». Закінчивши введення, можна відформатувати цей текстовийоб'єкт на свій смак (гарнітура шрифту, розмір, колір тощо). Аналогічно, помістіть компонент TextObject на смугу «MasterData», налаштуйте властивість DataSet на значення «AdoQuery», а властивість DataField на значення «Surname». Аналогічно додайте компоненти TextObject для виведення полів FirstName, Otch та st_bilet, а також 3 порожніх TextObject для ручного внесення до роздрукованої відомості оцінки, дати здачі та підпису викладача. Збережіться. Натисніть на піктограму «Перегляду звіту» – ви побачите приблизно таку картину (рис. 5.2):

delphi

Перший і другий рядки «шапки» - просто текст. Третій рядок шапки в режимі дизайнера має вигляд:

конструкція[ім'я_таблиці.«ім'я поля»]означає використання у цьому місці звіту значення зазначеного поля таблиці. Декілька однакових записів у рядках звіту обумовлені тим, що у властивості SQL компонента TempSQL зазначений запит, що виводить усі записи уявлення Session_Results. Надалі, при динамічному підключенні звіту до джерела даних із програми, інформація, що виводиться у звіт, буде коректною.

Для досягнення ефекту сітки, поміняйте у всіх об'єктів, в які виводите дані полів, набір властивостей Frame.Typ.Left, Frame.Typ.Right, Frame.Typ.Top, Frame.Typ.Bottom для включення рамки відповідно зліва, справа, зверху та знизу.

Зберігаємо макет звіту у файлі з розширенням *.fr3 та переписуємо обробник натискання кнопки «друк відомості» у наступному вигляді: