Отчет — это печатный документ, содержащий записи БД. В Delphi для создания отчетов служит генератор отчетов QuickReport, содержащий обширный набор компонентов. Компоненты, предназначенные для создания отчетов, находятся на закладке QReportпалитры компонентов.
Главным элементом отчета является компонент-отчет QuickRep, представляющий собой основу, на которой размещаются другие компоненты. Компонент QuickRep обычно размещается на отдельной форме, предназначенной для создания отчета.
Свойства компоненты QuickRep:
· Bands– здесь указываются компоненты размещаемые в QuickRep.
· DataSet– здесь указывается набор данных из которой отчет будет брать данные.
· Frame– здесь указывается параметры рамки.
· Options– здесь доступны три параметра. Если FirstPageHeaderравно true, то заголовок печатается только на первой странице отчета. Если LastPageFooterравен true, то нижний колонтитул печатается только на последней странице отчета. Если установить свойство Compressionв true, то отчет будет сохраняться в сжатом виде.
· ReportTitle– здесь находится заголовок печатаемого документа.
· SnapToGrid– нужно ли выравнивать компоненты по установленной сетке.
· Zoom– масштаб отображения данных.
Настройку параметров отчета можно выполнить с помощью окна Report Settings, вызываемый двойным щелчком мыши по компоненте QuckRep. Предпочтительно пользоваться именно этим окном, так как здесь всегда можно просмотреть будущий результат.
1. Открыть приложение «Студенты».
2. Добавить на главную форму кнопку «Создание отчета».
3. Создать новую форму «Отчет», которая будет вызываться нажатием на кнопку «Создание отчета».
4. На форму установить компоненту QuickRep с закладки QReport. Выделить этот компонент и в объектном инспекторе включить параметры HasTitleи HasDetailсвойства Bands.
5. Расположим компоненты в секциях QuickRep1, которые будут отображать нужную информацию отчета. На закладке QReportпалитры компонентов доступны следующие компоненты, которые можно расположить в этих разделах:
· QRLabel– надпись. Этот компонент похож на стандартный компонент TLabelи просто отображает нужные данные.
· QRDBText– данные. Этот компонент тоже похож на TLabel, только он предназначен для отображения значения какого либо поля из базы данных.
· QRSysData– системная информация. Это опять копия TLabelтолько с возможностью отображать системную информацию – дату, время, номер страницы, номер строки в таблицы, общее количество страниц и т.д.
· QRImage– картинка. Компонент схожий с TImage.
6. Увеличить область заголовка Title. В верхний угол поместите один компонент QRSysData. Выделить его и в свойстве Data выбрать значение qrsDateTime. Теперь этот компонент будет отображать в правом, верхнем углу дату распечатки документа.
7. В центре области Tittle установить компонент QRLabel, увеличь шрифт в свойстве Fontи написать в свойстве Captionтекст «Студенты».
8. Расположить в области Tittle компоненты QRLabelи дать им заголовки: ФИО, Дата рождения, Номер зачетки, Специальность, Курс.
9. Перейти к области Detail. Под заголовками поставить пять компонентов QRDBText. Установить в свойстве DataSet компонентов QRDBText набор данных - Form 1. Table 1, а в свойстве DataFieldдля QRDBText 1указать SFio. У всех остальных компонентов QRDBText указать соответствующие имена полей.
10. Перейти в главный модуль и по нажатию кнопки “Печать” написать следующий код.
12. Выделить компонент QuickRep1и в свойстве DataSetуказать таблицу Form 1.Table1.
13. Если сделать это, то компонент QuickRep1автоматически будет перебирать все записи из этой таблицы и использовать их в компонентах, которые стоят в блоке DetailBand1.
14. После этого в отчете появятся все записи таблицы:
15. Установить на форму отчета компонент – QRSubDetailс закладки QReport. Этот компонент предназначен для перебора данных относящихся к подчиненным таблицам.
16. Установить следующие свойства: DataSet– Form 1.Table2, чтобы связать блок с таблицей Uspevaemost . db, которая является подчиненной к основной Studenti . db.
17. В свойстве Master нужно указать главный компонент с основными данными. Выбрать в этом свойстве QuickRep1.
18. Расположить на компоненте QRSubDetail компоненты QRDBTextв свойстве указав, к каким полям подчиненной таблицы они обращаются.