Дизайнер FastReport

Етапи побудови звіту

Виділяють наступні компоненти процесу побудови типового звіту:

Етапи створення звіту

Дані

Являють собою сукупність даних, на основі яких будується звіт. Організація доступу до даних з БД здійснюється компонентами FastReport без участі програміста.

Крім даних, що зберігаються в БД, FastReport використовує будь-які джерела (масив, файл, вміст StringGrid і ін.). В цьому випадку програміст сам піклуватися про доступ до такої інформації. Для цього використовується набір подій, що дозволяють здійснити передачу даних в компоненти FastReport.

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

Параметри

На цьому етапі здійснюється запит параметрів у користувача (наприклад, діапазон дат, за яким необхідно вивести дані). Деякі звіти обходяться без цього етапу або використовують фіксовану установку параметрів (без запиту їх значень в діалозі).

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

FastReport, крім цього, дозволяє користувачеві самому розробляти форму діалогу. Процес нагадує побудова форми в середовищі Delphi: є набір стандартних елементів управління, які розташовуються на формі діалогу і налаштовуються їх властивості. За допомогою вбудованої мови FastReport дозволяє реалізувати необхідну логіку роботи діалогу і передати введені значення ядру генератора.

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

Форма

Форма звіту являє собою набір елементів, що описують вид готового звіту. Для угруповання елементів по їх розташуванню в готовому звіті застосовуються бенди (англ. Band - смужка). Бенди поділяються на два види: службові (заголовок звіту, сторінки та ін.) І бенди, що утворюють багаторядкова частина звіту (далі - дата-бенди). Дата-бенди підключаються до джерел даних, і їх вміст виводиться стільки разів, скільки є рядків даних в джерелі.

Для побудови форми звіту використовується візуальне середовище розробки - дизайнер / Інтерфейс дизайнера виконаний на сучасному рівні з використанням панелей інструментів (toolbars), розташування яких змінюється. Для зручності маніпуляції властивостями об'єктів звіту використовується інспектор об'єктів, аналогічний делфійскому.

Обробка

Під обробкою розуміється обробка вхідних даних, модифікація форми звіту або окремих її компонентів в процесі побудови звіту. Найпростіший приклад такої обробки - висновок від'ємних сум червоним кольором. Більш складний приклад обробки - друк суми, яка підраховується в підвалі групи, в її заголовку.

Реалізувати подібну обробку можна, вдавшись до написання обробників подій в Delphi - саме так і зроблено в FastReport. Цей спосіб не є універсальним, тому що не дозволяє створювати нові звіти поза середовищем Delphi без переписування і перекомпіляції проекту. Саме тому в FastReport застосована вбудована мова - спрощений аналог Pascal. Скрипти, написані на цій мові, по суті справи, є обробниками подій, що викликаються перед промальовуванням об'єктів. Це дає можливість виконувати досить складну обробку інформації без написання коду в Delphi, і відповідно, без жорсткої прив'язки звіту до проекту.

Можливості вбудованого мови FastReport досить широкі. З скрипта доступні всі властивості і методи об'єктів звіту, а також змінні, поля таблиць БД. В скрипті створюються змінні і масиви, які доступні в усьому звіті. Про можливості вбудованого мови говорить той факт, що така досить складна задача, як друк сум групи в її заголовку (сама сума вважається в підвалі групи) засобами мови FastReport робиться просто.

Готовий звіт

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

Вікно попереднього перегляду FastReport відрізняється від використовуваних в інших генераторах. Зокрема, в FastReport використовується схема перегляду документа і навігації, прийнята в Microsoft Word: у вікні можна бачити відразу кілька сторінок. Крім того, реалізована можливість пошуку тексту у всьому документі.

Документацію по FastReport можна знайти на сайті розробника.