Отчет – это печатный документ, содержащий данные, получаемые в результате выполнения запроса к БД. Существуют следующие виды отчетов:
1) простой отчет- отчет, составленный из записей одного набора данных, которые выводятся в табличном виде без дополнительных условий;
2) отчет с группированием позволяет отобразить информацию, сгруппированную по какому-либо признаку (например, по видам товара). Для группирования записей отчета по определенному полю набора данных необходимо установить текущий индекс по данному полю.
3) отчет для связанных наборов данных позволяет группировать данные по принципу, отличающемуся от простого объединения данных. Основными полосами отчета для связанных таблиц являются полоса данных и полосы детализации. Для полосы данных указывается главный набор данных, а для полосы детализации – подчиненный набор данных.
4) составной отчет, объединяющий несколько разных отчетов. Этот компонент является визуальным и добавление нового отчета в составной происходит по событию.
В Delphi 5 для создания отчетов служит генератор отчетов QuickReport.
На странице QReport палитры компонентов располагаются компоненты, применяемые для построения отчетов. Главным является компонент QuickRep, который размещается на отдельной форме. При размещении этого компонента на форме появляется сетка отчета, на которой в последующем располагаются различные составные части отчета.
Свойства компонента QuickRep:
Bands: TQuickRepBands – содержит набор логических свойств, которые после установки их значений в True включают в отчет следующие элементы:
- HasColumnHeader – заголовки столбцов,
- HasDetail – область данных;
- HasPageFooter – нижний колонтитул;
- HasPageHeader – верхний колонтитул;
- HasTitle – заголовок отчета,
- HasSummary – итог отчета.
DataSet: TDataSet - указывает на набор данных (Table), на основе которого создается отчет. Источник данных DataSource при этом не используется.
Frame: TQRFrame –определяет параметры рамки отчета (линии слева, справа, сверху, снизу), цвет линий, стиль линий (сплошная пунктирная и т.п.), толщина линии в пикселах.
Options: TquickReportOptions -содержит множество логических значений:
- HasFirstHeader – разрешает печать заголовка первой страницы;
- HasFirstFooter – разрешает печать заголовка последней страницы;
- Compression – разрешает сжимать отчет при выводе его в метафайл.
Page: TQRPage –определяет параметры страницы. Эти параметры можно установить в процессе разработки приложения в окне Report Setting, которое вызывается командой Report Setting контекстного меню страницы отчета или двойным щелчком на странице отчета.
PaperSize – формат страницы (по умолчанию A4);
Orientation – ориентация страницы:
· poPortrait – книжная (по умолчанию)
· poLandScape – альбомная;
Length, Width – высота и ширина страницы;
TopMargin, BottomMargin, LeftMargin, RightMargin – размер верхнего, нижнего, левого и правого полей соответственно;
Ruller – признак отображения сетки при разработке приложения (по умолчанию True и сетка видна).
PrintIfEmpty: Boolean –разрешает печатать отчет, если он не содержит данных.
ReportTitle: String – определяет имя отчета (не заголовка!).
ShowProgress:Boolean – при значении True разрешает показывать индикатор процесса печати отчета.
SnapToGrid:Boolean – привязывает размещаемые в отчете компоненты к сетке, если значение равно True.
Units:TQRUnits – определяет единицы измерения расстояний в отчете: дюймы, миллиметры, пиксели, внутренние единицы компонента QuickRep (0,1 мм), символы текста.
Zoom: Integer – позволяет установить масштаб отображения отчета (в процентах от его размеров на листе бумаги) на этапе разработки.
Основные методы компонента QuickRep
NewColumn – реализует вывод информации в следующей колонке отчета, для одной колонки – на следующей странице.
NewPage – обеспечивает вывод информации на следующей странице отчета.
Prepare – подготавливает отчет для вывода в файл. При этом вначале отчет подготавливается путем вызова метода Prepare, затем сохраняется в файле методом Save объекта QRPrinter, после этого объект уничтожается и свойству QRPrinter,присваивается значение NIL. Например,
QuickRep1.Prepare;
QuickRep1.QRPrinter.Save(‘primer.QRP’);
QuickRep1.QRPrinter.Free;
QuickRep1.QRPrinter:=NIL;
Print – печатает отчет на принтере.
PrintBackground- печать отчета в фоновом режиме. После завершения печати вызывается обработчик события OnAfterPrint.
Preview– выводит стандартное окно предварительного просмотра. Возможности этого метода превосходят возможности метода Print.
PrinterSetup – вызывает стандартное окно установки параметров принтера.
Отчет состоит из отдельных полос – составных частей, которые определяют содержание и вид документа. Полоса – это элемент отчета. Каждый элемент размещается на своем месте и предназначен для отображения соответствующих компонентов отчета.