Лекция 6.1. Средства создания отчетов в Delphi
Информацию, выводимую на печать или в файл в удобном для восприятия виде, принято называть отчетом. Создание отчетов является одной из основных функций, выполняемых многими информационными системами.
В поставку Delphi входит целый ряд компонентов позволяющих упростить создание отчетов. В Delphi 6 использовались средства Quick Report, начиная с версии Delphi 7 стали использовать Rave Reports 5.0 от фирмы Nevrona. Компоненты Quick Report по-прежнему доступны разработчику, и их можно установить как пакет DCLQRT70.BPL из папки \Delphi7\Bin. Существуют решения подходящие для различных средств разработки, например, FastReport Server.
Рекомендации по созданию отчетов
Перед разработкой отчета, так же как и перед разработкой формы, следует определить следующее:
· информационное наполнение отчета;
· наборы данных содержащие требуемую информацию;
· внешний вид отчета;
· поля сортировки и группировки;
· содержание итоговой части отчета (если она присутствует).
Обычно перед разработкой отчета создают эскиз отчета или, что еще лучше, используют стандартные бланки, использование которых принято в организации. Эти меры позволят сразу определить перечень необходимых компонентов, сократят время разработки и максимально снизят количество ошибок.
Чаще всего отчеты формируют на основе SQL-запросов, т.к. они позволяют вернуть необходимый набор данных.
Условно все отчеты можно разделить на две группы:
· табличные отчеты;
· отчеты в свободной форме.
Отчеты, выполненные в свободной форме, содержат информацию, не упорядоченную в виде таблицы, а располагающуюся в произвольной форме. Обычно, подобную, сложную структуру имеют различные бланки.
Генератор отчетов Quick Report
Компоненты QuickReport разработаны специально для Delphi, и средствами Delphi. В профессиональную поставку QuickReport входят также исходные коды этих компонентов, так что их можно, например, русифицировать.
Отчеты создаются на базе обычной формы, форма при этом не вызывается, а вызывается сам отчет. Генератор отчетов QuickReport позволяет создавать отчеты для просмотра, печати и сохранения в файл. Поддерживаются следующие форматы файлов:
· ASCII-текст и HTML – для стандартной поставки QuickReport;
· ASCII-текст, HTML, Excel, RTF и Windows Metafile – для профессиональной.
С целью автоматизации создания отчетов можно использовать мастер, для этого необходимо выполнить команду File – New – Other – Вкладка Business и выбрать объект QuickReport Wizard.
Структура генератора отчета
Все компоненты генератора отчетов QuickReport можно разделить на четыре группы:
· базовый компонент TQuickRep, являющийся контейнером полос отчета и обеспечивающий генерацию и печать отчета;
· полосы отчета (TQRBand)– специальные компоненты, являющиеся контейнерами для элементов отображения данных и формирующие структуру отчета;
· компоненты отображения данных, используемые для визуализации информации, содержащейся в таблицах базы данных, а также для вывода любой дополнительной информации;
· фильтры (TQRExportFilter) – невизуальные компоненты, применяемые для экспорта отчета в файлы некоторых распространенных форматов.
Компонент TQuickRep
Компонент класса TQuckRep является основой отчета и имеет методы для управления им. На него необходимо поместить полосы отчета, которые в свою очередь станут носителями визуальных компонентов, отображаемых в отчете.
Компонент размещается на форме (рисунок 6.1.1), но является самостоятельным и вызывается собственными методами, а не методами формы.
Рисунок 6.1.1 - Форма с размещенным компонентом класса TQuckRep
При разработке отчетов можно вообще не использовать дополнительной формы контейнера. Для этого в начале разработки отчета вместо размещения на форме компонента TQuckRep следует выполнить следующее:
1. Выберите команду File – New – Other – Вкладка New
2.
Выберите в окне хранилища объектов элемент ReportВ результате к проекту будет добавлено окно компонента TQuickReport.
Основные свойства класса TQuickRep:
· Bands: TQuickRepBands – множество полос отчета;
· DataSet: TDataSet – НД, используемый для формирования отчета;
· Description: TStrings – описание отчета;
· ExportFilter: TQRExportFilter – фильтр, используемый при записи отчета в файл;
· Exporting: Boolean – определяет, задан фильтр (true) или нет (false);
· Options: TQuickReportOptions - параметры отчета;
· Page: TQRPage – параметры страниц;
· ShowProgress: Boolean – управляет отображением прогресса печати отчета.
Основные методы класса, используемые для организации работы с отчетом:
· procedure ExportToFilter(AFilter : TQRExportFilter) – сохраняет отчет в файл в формате фильтра;
· procedure NewPage – начинает вывод отчета с новой страницы;
· procedure Prepare – создает отчет. Используется, если требуется создать отчет, не вызывая методов предварительного просмотра или печати. После вызова метода Prepare созданный отчет хранится в объекте QRPrinter и может быть распечатан или сохранен на диске.
· procedure Preview – генерирует отчет и отображает его на экране;
· procedure Print – генерирует отчет и выводит его на принтер;
· procedure PrinterSetup – вызывает окно диалога настройки параметров принтера.
Пример сохранения отчета в файл формата HTML:
procedure TForml.Button1Click(Sender : TObject);
var Filter : TQRHTMLDocumentFilter;
begin
Filter:=TQRHTMLDocumentF11ter.Create('REPORT.HTM');
try
Report.ExportToFI1ter(F11ter);
finally
Filter.Free;
end;
end;
Пример генерации отчета и записи его в файл с именем report.rep, без предварительного просмотра и печати:
Report.Prepare;
try
Report.QRPrinter.SaveToFi1e('report.rep'):
finally
Report.QRPrinter.Free:
end;
Report.QRPrinter:= nil;
Основные события класса TQuckRep используемые при программном изменении внешнего вида отчета:
· AfterPreview – вызывается после закрытия окна предварительного просмотра;
· AfterPrint – вызывается после окончания печати отчета;
· BeforePrint – вызывается перед началом печати или предварительного просмотра;
· OnEndPage – вызывается по окончании создания очередной страницы отчета;
· OnStartPage – вызывается в начале создания страницы отчета.
Настройка параметров отчета осуществляется через свойства Options и Pages в инспекторе объектов или в окне диалога Report Settings вызываемого одноименной командой контекстного меню.
Фильтры
Для экспорта отчетов в файлы распространенных форматов используются специальные компоненты QuickReport, называемые фильтрами. Фильтры можно также использовать для экспорта данных из базы данных в другой формат.
Классы фильтров входящие в стандартную поставку Delphi:
TQRTextFilter – экспорт отчета в текстовый файл ASCII. В качестве разделителей полей используются пробелы;
TQRCSVFilter – экспорт отчета в файл CSV-формата, в котором поля разделяются запятыми, а значения полей заключаются в кавычки. Формат поддерживается электронными таблицами. Свойство Separator позволяет задавать символ разделителя;
TQRHTMLFilter – экспорт отчета в файл HTML-формата.
Рисунок 6.1.2 - Размещение фильтров на компоненте TQuickRep
Классы фильтров входящие в профессиональную поставку:
TQRExcelFilter – экспорт отчета в формат электронной таблицы MS Excel;
TQRRTFFilter – экспорт отчета в формате RTF;
TQRWMFFilter – экспорт отчета в графический файл формата WMF (Windows Metafile).
Для использования возможностей экспорта достаточно просто поместить компоненты фильтров на компонент TQuickRep. После этого из окна предварительного просмотра отчет можно будет сохранить в виде файла в форматах, поддерживаемых фильтрами, размещенными на TQuickRep.
Вопросы для самоконтроля
1. Какие существуют средства создания отчетов в Delphi?
2. Каких рекомендаций следует придерживаться при создании отчетов?
3. Какую структуру имеет генератор отчетов QuickReport?
4. Какие основные свойства класса TQuckRep вы знаете?
5. Какие основные методы класса TQuckRep вы знаете?
6. Для чего используются фильтры в отчетах и как их применяют?
Еще по теме Лекция 6.1. Средства создания отчетов в Delphi:
- 23. Радио: + и –
- ЗАКЛЮЧЕНИЕ
- 35.Защита прав авторов и патентообладателей.
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ