Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 Mб
Скачать

3.12. Формирование отчетов средствамиFastReports

По результатам опроса Delphi Magazine Fast Reports(fast-report.com,www.fastreport.ru) входит в тройку лидеров по популярности среди инструментов для разработки отчетов для Borland Delphi. В 2004 г. Fast Reportsвыбран продуктом года.

Данный пункт подготовлен М.В. Зыковым.

3.12.1. Компоненты отчета

frxReport- это основной компонент проекта. Один компонент TfrxReport содержит один отчет. Во время проектирования приложения двойной щелчок мышью на компоненте вызывает дизайнер отчета. Для использования дизайнера в скомпилированном проекте необходимо ис­пользовать компонент frxDesigner из палитры компонентов Fast Report, либо включить в списокusesмодуль frxDesign. Использование дизайнера во время выполнения дает возможность пользователю настраивать вид отчета, а также редактировать готовый отчет.

Основные свойства

Name- имя отчета.

ScriptLanguage- язык, используемый для скриптов отчета.

EngineOptions- набор свойств ядра отчетаFastReport.

ConvertNulls- определяет интерпретацию генератором отчетов пустых значений (Null) полей БД. ЕслиTrue, то генератор конвертирует пустое значение (Null) поля базы данных в 0 (ноль),False(ложно) или '' (пустая строка) в зависимости от типа поля (True).

SilentMode- режим «молчания». Все сообщения об ошибках будут накапливаться в свойстве TfrxReport.Errors; на экран никаких сообщений выдано не будет (False).

TempDir- путь к каталогу для хранения временных файлов.

PreviewOptions- набор свойств предварительного просмотра.

AllowEdit- разрешает/запрещает редактирование готового отчета (True).

Buttons- набор кнопок, которые будут доступны в окне просмотра (pbPrint - печать, pbLoad - загрузка из файла, pbSave - запись в файл, pbExport - экспорт, pbZoom - масштабирование, pbFind - поиск, pbOutline - включение дерева отчета, pbPageSetup - свойства страницы, pbTools - инструменты, pbEdit - редактор, pbNavigator - навигация).

PrintOptions- набор свойств печати отчета.

Copies - количество печатуемых копий (1).

Collate- разбирать ли по копиям (True).

PageNumbers- номера страниц (диапазонов страниц), которые надо напе­чатать, например: '2,4,6-9,14'.

Printer- имя принтера.

PrintPages- страницы для печатати (ppAll- все, ppOdd - нечетные, ppEven - четные).

ShowDialog- показывать ли диалог печати (True).

AllObjects- список всех объектов, содержащихся в отчете (включая страницы).

DataSets- список наборов данных, доступных для отчета.

Designer- ссылка на дизайнер отчета (актуальна, когда запущен дизайнер).

Engine- ссылка на движок отчета. Полезна в случаях, когда нужно управ­лять процессом построения отчета из кода.

Errors - список ошибок, возникших при той или иной операции.

FileName- имя файла отчета; отображается в дизайнере.

PreviewPages- ссылка на страницы готового отчета. Используется при всех операциях, связанных с готовым отчетом (печать, сохранение и пр.).

Pages- список страниц отчета. В этом списке также присутствуют страницы типа «диалоговая форма».

PagesCount - количество страниц в отчете. Свойство только для чтения.

Script- компонент fsScript, привязанный к данному отчету. Используя эту ссылку, можно добавлять свои переменные, классы, функции, которые следует ис­пользовать в скрипте отчета. Используется только для чтения.

Styles - стиль (оформление) отчета.

Variables- список переменных отчета. Используется только для чтения.

Методы

Clear - очищает отчет.

LoadFromFile (constFileName:String;ExceptionIfNotFound:Boolean=False): Boolean- загружает отчет из файла с заданным именем; если второй параметр равенTrueи файл не найден, то генерирует исключение. Если файл загружен успешно, возвращаетTrue.

Пример использования метода: frxReport1.LoadFromFile('c:\1.fr3').

LoadFromStream (Stream: TStream) - загружает отчет из потока.

SaveToFile (const FileName: String) - записывает отчет в файл с заданным именем. По умолчанию форма отчета хранится вместе с формой проекта, т.е. в файле .dfm. Метод применяется, если требуется хранить форму от­чета в отдельном файле .fr3. Пример: frxReport1.SaveToFile('c:\2.fr3').

SaveToStream (Stream: TStream) - записывает отчет в поток.

DesignReport- вызывает дизайнер отчета. Дизайнер должен быть включен в проект. Пример использования метода: TfrxReport.DesignReport.

ShowReport (ClearLastReport: Boolean = True) - запускает отчет на выполнение и показывает результат в окне предварительного просмотра. Если параметр ClearLastReport равен False, то отчет добавляется к ранее построенному, иначе ранее построенный отчет очищается (True). (frxReport1.ShowReport).

PrepareReport (ClearLastReport: Boolean = True): Boolean - запускает отчет на выполнение; без окна предварительного просмотра. Если отчет был по­строен успешно, возвращает True.

ShowPreparedReport- показывает отчет, построенный ранее с помощью вызоваPrepareReport(iffrxReport1.PrepareReportthen

frxReport1.ShowPreparedReport;).

Print - печатает отчет. (frxReport1.Print).

Export(Filter: TfrxCustomExportFilter) -экспортирует отчет, используя за­данный фильтр экспорта (frxReport1.Export(frxHTMLExport1);).

Специфичные события

OnBeforePrint- происходит при запуске отчета на выполнение. Возникает перед обработкой каждого объекта.

OnAfterPrint- происходит при запуске отчета на выполнение. Возникает после обработки каждого объекта.

OnClickObject- происходит при просмотре отчета в окне предваритель­ного просмотра. Возникает при щелчке мышью на объекте.

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

OnManualBuild- происходит при запуске отчета на выполнение. Если на­значен обработчик этого события, то ядро FastReport блокируется и пользователь должен самостоятельно обрабатывать построение отчета.

OnMouseOverObject- происходит при просмотре отчета в окне предвари­тельного просмотра. Возникает при прохождении указателя мыши над объектом.

OnUserFunction- происходит при запуске отчета на выполнение. Возни­кает при вызове функции, добавленной с помощью метода AddFunction.

frxUserDataSet - компонент подключения пользовательского набора данных (не привязанного к базе данных, например массива, файла и др.).

В случае использования этого компонента программист должен обеспечить навигацию по источнику данных.

Основные свойства

RecNo - номер текущей записи. Первая запись имеет номер 0. Свойство только для чтения.

Enabled- будет ли доступен данный компонент из дизайнера (True).

RangeBegin- начальная точка навигации (rbFirst - с начала набора данных, rbCurrent - с текущей записи) (rbFirst).

RangeEnd- конечная точка навигации (reLast - до конца набора данных, reCurrent - до текущей записи, reCount - на заданное в свойстве RangeEndCount количество записей) (reLast).

RangeEndCount-количество записей в наборе данных, если свойство RangeEnd = reCount (0).

UserName- символическое имя набора данных.

События

OnCheckEOF - обработчик этого события должен вернуть параметр Eof = True, если достигнут конец набора данных.

OnFirst- обработчик этого события должен передвинуть указатель на на­чало набора данных.

OnNext- обработчик этого события должен передвинуть указатель на следующую запись.

OnPrior- обработчик этого события должен передвинуть указатель на предыдущую запись.

frxDBDataSet- компонент служит для подключения к компонентам базы данных (БД), основанных на TDataSet, таких как TTable, TQuery. Навигация по ис­точнику данных и обращение к полям производятся автоматически, т.е. программист не должен об этом заботиться.

Свойства

OpenDataSource- открывать набор данных перед построением отчета (True).

CloseDataSource- закрывать набор данных после построения отчета (False).

FieldAliases- символические имена полей набора данных.

DataSet, DataSource- ссылка на компонент типа TDataSet или TDataSource, который собственно и является набором данных.

События

OnClose/OnOpen- происходит при открытии/закрытии набора данных.

frxDesigner - компонент-дизайнер отчета. Его использование дает возможность применять дизайнер отчета в проекте. Компонент содержит лишь некоторые настройки дизайнера, сам же дизайнер подключается при помещении ссылки на frxDesign в списокuses(это происходит автоматически при использовании данного компонента).

Свойства

CloseQuery- свойство определяет, надо ли спрашивать о сохранении от­чета при закрытии дизайнера (True).

OpenDir- имя папки, из которой по умолчанию открывается файл.

SaveDir- имя папки, в которой по умолчанию сохраняется файл.

Restrictions- набор из одного или нескольких значений, запрещающих те или иные действия в дизайнере:

drDontInsertObject- запретить вставку объектов;

drDontDeletePage- запретить удаление страниц;

drDontCreatePage- запретить создание новых страниц;

drDontChangePageOptions- запретить изменение свойств страницы;

drDontCreateReport- запретить создание нового отчета;

drDontLoadReport- запретить загрузку отчета;

drDontSaveReport- запретить сохранение отчета;

drDontPreviewReport- запретить предварительный просмотр отчета;

drDontEditVariables- запретить редактирование переменных;

drDontChangeReportOptions- запретить изменение свойств отчета.

События

OnLoadReport- событие возникает при загрузке отчета. С его помощью можно организовать загрузку отчета из БД.

OnSaveReport- событие возникает при сохранении отчета. С его помощью можно организовать сохранение отчета в БД.

OnShow- событие возникает при запуске дизайнера.

frxPreview- компонент служит для создания собственных окон предварительного просмотра.

Нижеследующие компоненты панели инструментов FastReportсами ничего не делают - они нужны для автоматического добавления ссылки на соответствующий модуль в списокuses. Если вы попытаетесь открыть отчет, в котором используются подключаемые объекты, но не включили данные объекты в проект, то получите сообщение об ошибке.

frxBarcodeObject- штрих-код.

frxOLEObject- внедрение в отчет объектаOLE.

frxChartObject- диаграмма.

frxRichObject- внедрение в отчет текста в форматеRTF.

frxCrossObject- вывод кросс-таблицы (в такой таблице число строк и столбцов заранее не известно).

frxCheckBoxObject - объектCheckBox.

frxGradientObject- объект отображает градиентную заливку.

frxDialogContols- набор объектов (кнопка, поле ввода, список и др.), которые можно использовать на диалоговой форме отчета.

frxBDEComponents- компонентыBDEдоступа к данным - набор объектов, которые можно использовать на диалоговой форме отчета.

frxADOComponents- компоненты доступа к даннымADO- набор объектов (база данных, таблица, запрос), которые можно использовать на диалоговой форме отчета.

frxIBXComponents- компоненты доступа к даннымInterbaseExchange-набор объектов (база данных, таблица, запрос), которые можно использовать на диалоговой форме отчета.