Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_БД.doc
Скачиваний:
28
Добавлен:
04.05.2019
Размер:
4.03 Mб
Скачать

Конструктор отчетов Rave Report

Для создания отчетов в среде Delphi 6, 7 предлагается использовать компоненты Rave Reports. Эти компоненты были разработаны компанией Nevrona (www.nevrona.com/rave) и позволяют создавать отчеты, которые поддерживают такие механизмы доступа к данным, как BDE, dbExpress, ADO. В отчеты Rave Reports можно включать графические элементы и сохранять в различных форматах (PDF, HTML, RTF).

Для запуска Rave Reports можно выполнить одно из следующих действий:

  • запустить приложение Rave.exe (c:\Program Files\Borland\Delphi7\Rave5)

  • выполнить команду ToolsRave Designer (ИнструментыДизайнер отчетов).

Окно дизайнера отчетов состоит из следующих элементов:

  • Navigation Area (область навигации) – содержит главное меню, панели инструментов и панель компонентов;

  • Page (страница отчета) – находится в центре окна и разбита на ячейки с помощью четки;

  • Project Tree Panel (панель дерева проекта) – в правой части окна, позволяет быстро переходить к нужному объекту проекта;

  • Property Panel (панель свойств) – в левой части окна, служит для отображения и задания свойств компонентов отчета.

В структуре проекта выделяют следующие элементы:

  • Rave Project – контейнер для всех других компонентов, создается одновременно с созданием нового файла проекта, всегда один для одного файла проекта. Свойства: AdminPassword- позволяет ограничить доступ пользователей к отчетам и данным; Parametres – позволяет создавать элементы, в которые Delphi помещает результаты вычислений для использования их другими компонентами. PIVars – служит для описания специфических данных, которые требуют динамического обновления во время генерации отчета;

  • Report (Отчет) – содержит страницы отчета.

  • Page (Страница) – базовый визуальный компонент, на котором помещаются все стандартные компоненты (отчета, рисования).

  • Global Page (Глобальная страница) – страницы размещаются под узлом Каталога Глобальных страниц в дереве проекта. Содержат шаблоны, используемые для различных целей. Все глобальные страницы могут быть «зеркалированы».

  • Data Objects (Объекты данных) – компоненты Data Connection для соединения с данными. Диалоговое окно Data Connection вызывается нажатием кнопки New Data Object и предлагает варианты выбора: DataLookupSecurity Controller, Database Connection, Direct Data View, Simple Security Controller, Driver Data View. Выбранный объект помещается в дерево проекта. Соединение с данными из приложений на Delphi обеспечивает Direct Data View.

Структура приложения. В структуру приложения входят:

  • Стандартные компоненты Data Connection, которые обеспечивают связь между данными: RvCustomConnection, RvDataSetConnection, RvTableConnection.

  • Компонент RvProject- позволяет создавать, изменять, отображать и печатать компоненты отчета.

  • Файл проекта отчета с расширением RAV, где сохраняются все определения и настройки.

  • Отчеты сохраняются в Библиотеке отчетов (Report Library) проекта.

  • Глобальные страницы сохраняются в Каталоге глобальных страниц проекта (Global Page Catalog).

  • Виды данных сохраняются в Словаре видов данных проекта (Data View Dictionary).

Компоненты страницы отчета. Большинство компонентов размещается на странице отчета, кроме Band и DataBand, которые размещаются на Region.

  • Regoin (Регион) – контейнер для полос;

  • DataBand – предназначен для отображения динамической информации из видов данных.

  • Band – предназначен для размещения фиксированных компонентов, не изменяющихся на странице. Например, Text, CalcText.

  • DataText – служит для отображения значений из полей набора данных в любом месте страницы. Связать этот компонент с данными можно двумя способами: выбрать одиночное имя поля из выпадающего списка в свойстве DataField; либо с помощью окна DataTextEditor, который вызывается двойным щелчком на многоточии в свойстве DataField. Предварительно задать свойство DataView.

  • DataMemo – позволяет добавлять мемо-поля базы данных. Для выбора нужно установить свойства DataView и DataField.

  • CalcText предназначен для вычислений и отображения результатов. Свойства: CalcType – определяет тип вычисления (ctAverage, ctCount, ctMaximum, ctMinimum, ctSum); CountBlanks- указывает, будут ли учитываться при подсчете пустые значения; RunningTotal- задает обнуление для вычисляемого значения при запуске генерации отчета.

  • CalcOp - невизуальный компонент, с помощью которого можно производить вычисления с данными: значения из полей (свойство SrcDataField, Scr2DataField), константы (Src1Value,Src2Value), другие вычисляемые параметры (Src1CalcVar,Src2CalcVar). Свойство Operator задает тип операции.

  • CalcController невизуальный компонент, который связывает между собой компоненты DataBand, CalcText и CalcTotal через свойства Controller.

  • DataCycleневизуальная посола отчета, связанная с таблицей базы данных. Это цикл через все detail-записи данных для одного уровня master-записи. Имя master-таблицы определяется свойством MasterDataView. Две таблицы связываются через свойство DetailKey. Данные при формировании отчета могут быть отсортировать через свойство MasterKey.

  • DataMirror Section – предназначен для создания «зеркальной» области, которая будет использоваться в отчете для создания вариаций отчетов.

Пример. С помощью мастера Simple Table создать простой отчет для БД Tovar.

  1. Создать компонент Table и инициализировать таблицу, установив свойство Active в True.

  2. Создать компонент RvDataSetConnection: TRvDataSetConnection (вкладка Rave). Свойству DataSet установить значение Table1(компонент базы данных, созданный на первом шаге). Дать ему имя TovarReport.

  3. Создать компонент RvProject: TRvProject . Двойным щелчком мыши на этом компоненте вызвать визуальный дизайнер.

  4. В окне дизайнера Rave Reports выполнить команду FileNewData Object. В появившемся окне Data Connections выбрать Direct Data View и нажать кнопку Next. В окне Data Connection в списке Active Data Connections выделить имя TovarReport и нажать кнопку Finish.

  5. В панели Project Tree в списке Data View Dictionary выбрать новый вид DataView1 и через свойство Name изменить ему имя на TovarReportDv.

  6. Выполнить команду ToolsReport WizardsSimple Table для вызова мастера простой таблицы:

    1. Выделить имя TovarReport и нажать Next;

    2. Выбрать нужные поля для отображения в отчете, например, Tovar, Cena, Kol_vo и нажать Next;

    3. Если необходимо, изменить порядок полей и нажать Next;

    4. Задать имя отчета в поле Report Title. Изменить размеры шрифта, если нужно, и нажать Generate для создания отчета.

  7. Для просмотра результатов выполнить команду FileExecute Report. В появившемся окне Output Options выбрать Preview и нажать Ok.

Компоненты управления отчетом.

RvProjectпредназначен для установки связи с файлом отчета. Свойства: ProjectFile – задает файл проекта отчета с расширением RAV. Метод Open загружает этот файл в оперативную память. Метод Close закрывает файл проекта. При включении компонента RvReport в приложение необходимо обеспечить следующую последовательность операций:

  1. RvProject.Open – открыть файл проекта, указанный в свойстве ProjectFile.

  2. RvProject.GetReportList(ListBox1.Items,true) – загрузка имен отчетов в списокListBox1.

Компоненты Data Connection позволяют управлять посылкой данных в отчет Rave Reports:

  • RvCustomConnection предназначен для связи DirectDataView, созданного дизайнером Rave Reports, с обычными данными (массивами в памяти, бинарными файлами, данными, генерируемыми во время событий);

  • RvDataSetConnection предназначен для связи DirectDataView с набором данных (например, компонентом DataSet);

  • RvTableConnection предназначен для связи DirectDataView с таблицей (например, компонентом Table);

  • RvQueryConnection класс предназначен для связи DirectDataView с запросом (например, компонентом Query).

Имеются следующие виды событий:

  • OnEOF происходит при достижении конца данных. Значение true – достигнут конец данных.

  • OnFirst происходит в момент перемещения указателя текущей записи в первую строку данных.

  • OnGetCols возникает, когда Rave Reports получает метаданные (имя поля, тип, размер символов, полные имя и описание).

  • OnGetRow происходит при получении данных из текущей строки.

  • OnGetSorts происходит при потребности Rave в информации о поддерживаемых методах сортировки.

  • OnNext возникает при перемещении указателя текущей записи на следующую строку данных.

  • OnOpen генерируется при инициализации сессии. Текущее состояние может быть впоследствии восстановлено генерацией события OnRestore.

  • OnRestore происходит, когда Rave хочет восстановить состояние данных, запомненное перед открытием сессии.

  • OnSetFilter возникает при потребности фильтрации данных (например, в отчетах master-detail).

  • OnSetSort возникает при необходимости сортировки данных.

  • OnValidateRow генерируется для каждой строки данных для их фильтрации.

Пример. Создать отчет для базы данных Pokupka.

  1. На форме разместить два компонента Table. Задать им свойства:

    1. DatabaseName=Pokupka; TableName=Pokupka.db; Name=tbPokupka; Active=true;

    2. DatabaseName=Pokupka; TableName=Pokupka.db; Name=tbPokupka; Active=true;

  2. Создать два компонента RvDataSetConnection. Задать им свойства:

    1. DataSet =tbPokupka; Name=rvdsPokupka;

    2. DataSet =tbTovar; Name=rvdsTovar;

  3. Создать компонент RvProject. Задать ему свойства:

    1. Name=RvPokupka; ProjectFile=e:\Student\My\my_rvpokupka.rav

  4. Вызвать дизайнер отчетов Rave Reports и в нем выполнить следующее:

    1. FileNew Report (ФайлНовый отчет)

    2. FileNew Data Object (ФайлНовый объект данных) и в появившемся окне выбираем Direct Data View, затем Next, в следующем окне выбираем rvdsPokupka, затем Finish (Готово). Устанавливаем свойство Name=DtvPokupka.

    3. FileNew Data Object (ФайлНовый объект данных) и в появившемся окне выбираем Direct Data View, затем Next, в следующем окне выбираем rvdsTovar, затем Finish (Готово). Устанавливаем свойство Name=DtvTovar.

  5. С помощью мастера простого отчета Simple Table создать простой отчет, включив поля Data, Code_Tovar, Number.

    1. Для отображения в колонке Code_Tovar вместо кодов товаров их наименования из таблицы Tovar необходимо для соответствующего компонента Datatext2:Data Text component установить следующие свойства: LookupDataView=DtvTovar; LookupField=Code_Tovar; LookupDisplay=Tovar;

    2. Изменить свойства Text для компонентов Text Component, означающих названия колонок в отчете.

    3. Установить необходимые шрифты для всех компонентов отчета.

    4. Сохранить отчет командой FileSave, задать имя файлу отчета e:\Student\My\my_rvpokupka.rav

    5. Завершить работу с Rave Report.

  6. На форме расположить компонент Button, задать свойства Name=btReport, Caption=Отчет, и включить обработку procedure TForm1.btReportClick(Sender: TObject); begin RvPokupka.Execute; end;

  7. Приложение с отчетом создано.