Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000555.doc
Скачиваний:
31
Добавлен:
30.04.2022
Размер:
19.12 Mб
Скачать

11.2. Печать записи с помощью Quick Reports

Для использования Quick Reports создадим новую форму, которую назовем ReportForm и сохраним ее в модуле ReportFormUnit.

Чтобы модуль ReportFormUnit мог работать с базой данных подключим к нему модуль данных DataModule, где у нас хранятся компоненты доступа к таблицам базы данных.

Установим на форму ReportForm компонент QuickRep.

Выделим этот компонент и в объектном инспекторе включим параметры HasTitle и HasDetail свойства Bands

Теперь в этих секциях расположим компоненты, которые будут отображать нужную нам информацию.

На вкладке QReport палитры компонентов имеется ряд компонентов, которые можно располагать в этих разделах.

  • QRLabel — надпись. Этот компонент похож на стандартный компонент TLabel, и просто отображает нужные данные.

  • QRDBText — данные. Этот компонент тоже похож на TLabel, только он предназначен для отображения значения какого-либо поля из базы данных. Тип поля БД должен быть совместим с текстом, т. е. может быть целым числом, строкой, датой, но не может быть картинкой или бинарными данными.

  • QRSysData — системная информация. Это опять копия TLabel только с возможностью отображать системную информацию: дату, время, номер страницы, номер строки в таблице, общее количество страниц и т. д.

  • QRMemo —набор строк. Этот компонент похож на TMemo и способен отображать Memo данные из базы данных.

  • QRShape — компонент для создания обрамлений. Он чем-то похож стандартный TShape.

  • QRImage — Картинка. Компонент, похожий на TImage.

Теперь приступим за оформлению отчета.

Выделим область заголовка и увеличим ее размер примерно раза в два.

В правый верхний (именно области Title, а нe компонента QuickRep) поместим один компонент QRSysData.

Выделим его и в свойстве Data выберем значение qrsDateTime. Теперь этот компонент будет отображать в правом, верхнем углу дату распечатки документа.

В центр области поместим компонент QRLabel, зададим размер шрифта в свойстве Font и напишем в свойстве Caption текст Распечатка строки из базы данных.

Слева области можно установить компонент (картинку) QRImage.

Работа с ней ничем не отличается от работы с компонентом TImage. А именно в указанную область ставится компонент QRImage. Двойное нажатие левой кнопкой мыши на компонент QRImage или на его свойство Picture в объектном инспекторе откроет окно загрузки, в котором можно выбрать и загрузить нужный файл (картинку)

Теперь перейдем в область Detail.

Здесь выстроим в строку ряд компонентов QRLabel и дадим им заголовки, полей нашей базы данных это могут быть: Фамилия, УчГруппа, СтудБилет, Дисциплина, Оценка, ДатаТестир. Под ними поставим компоненты QRDBText.

У всех компонентов QRDBText установим свойство DataSet в DataModule1.FindQuery, а в свойстве DataField укажем соответствующие поля.

Теперь перейдем в модуль, которым у нас является модулем результатов поиска, т.е. в модуль FindResultUnit, установим там кнопку Распечатать отчет (компонент Button). Для обработки события OnClick компонента Button, напишем следующий код:

ProcedureMainForm.PrintButtonClick(Sender: TObject);

begin

ReportForm.QuickRepl.PreviewModal;

end;

В этом коде вызывается метод PreviewModal компонента QuickRep, который показывает модальное окно предварительного просмотра созданного нами документа.

В этом окне достаточно нажать кнопку печати, и документ будет распечатан на принтере. Этот документ состоит из одной записи из базы данных.