Разработка отчетов с помощью средства Rave Reports

Для запуска среды Rave, на форму необходимо установить компонент TRaveProject или выбрать из главного меню Delphi Tools\RaveDesigner. Главное рабочее окно состоит из раздеов:

1. Основной раздел Page Designer.

2. Редактор событий EventEditor.

3. Свойства property.

4. Дерево проекта PrjectTree.

5. Панель инструментов ToolbarPalet.

6. Строка состояния.

RaveDesigner можно настроить на пользователя с разным уровнем опыта. Для этого в главном меню Edit/Preferences в разделе окружение (Environment) выбрать уровень пользователя: новичок (beginner), пользователь среднего уровня (Intermediate) и опытный пользователь (advanced).

ReportLibrary – библиотека отчетов, которая содержит все отчеты, отчет может содержать одну или несколько страниц, на которых расположены компоненты. Так же в Rave можно управлять шаблонами в разделе GlobalPageCatalog. Шаблон может содержать несколько компонентов: заголовки, полное определение страницы и т.д. DataViewDictionary – представляются данные и объекты, связанные с данными для отчетов.

Панель инструментов и палитра панели инструментов. По умолчанию присутствуют палитры компонентов Standard, Drawing, Report, Barcode. Причем можно добавлять другие элементы. Все панели могут изменять компоненты, которые будут входить в проект. Команды, доступные на панели редактирования:

- Project Toolbar – панель проекта, создает новый отчет, страницу и компонент объекта. Данная панель позволяет создать новый проект, сохранить/загрузить уже существующий.

- Alignment Toolbar – панель выравнивания, содержит инструменты для выравнивания и позиционирования компонентов на странице. Компонент, выбранный первым, используется для основного ориентира при выравнивании

- Fonts Toolbar – панель шрифтов, для изменения атрибутов шрифтов.

- Fills Toolbar – панель заливок.

- Lines Toolbar – панель линий, которая позволяет изменять стиль, толщину, обрамление линий.

- Zoom Toolbar – панель масштабирования.

Компонент RvProject. Файл, который будет хранить отчет - *.rav. Для формирования отчета на форме размещается компонент RvProject и присваивается его свойству ProjectFile имя, а для кнопки, вызывающей отчет, необходимо написать обработчик события RvProject1.Execute. Для управления важными параметрами отчета и предварительного просмотра можно подключить RvNDRWriter или RvSystem к свойству Engine компонента RvProject. RvNDRWriter генерирует отчет в формате NDR – внутренний формат, который можно воспроизвести во многих других форматах. RvSystem комбинирует RvNDRWriter со стандартным интерфейсом печати. Встроенный в Rave механизм преобразования позволяет конвертировать его в другие форматы представления, это делается при обращении к методу Execute, когда в диалоговом окне OutputOptions выбирается один из форматов списка Format. На странице Rave палитры компонентов присутствуют: RvRenderPreview – используется для отображения NDR файла на экране, если нет надобности использовать средства просмотра, можно использовать RvSystem. RvRenderPrinter – передача NDR файла на печать.

Подключение к данным. Компоненты подключения к данным обеспечивают связь между данными, содержащимися в приложении и компонентом DirectDataView. Для подключения используются компоненты:

- RvCustomConnection – обеспечивает передачу данных в Rave отчет при помощи программных событий. Используется для передачи данных в отчет, никак не связанных с БД.

- RvDataSetConnection – подключает компоненту DirectDataView любой компонент, который является производным от класса TDataSet.

Свойство FieldsAliesList может модифицировать имена полей набора данных.

- RvTableConnection

- RvQueryConnection

Подключаются к компонентам Table и Query, обеспечивая механизм сортировки.

Компонент RavEDesigner является владельцем всех компонентов, входящих в отчет. Чтобы видеть значение в иерархии проектов необходимо открыть RaveProject и посмотреть панель свойств. К базовым компонентам относятся 7 на странице стандартной палитры инструментов: Text; Memo; Section; FontMaster; Metafile; PageNumInit; Bitmap.

Section используется для группировки компонентов подобно компоненту Panel. Bitmap и Metafile относятся к графическим компонентам и позволяют добавлять графические изображения в отчет. FontMaster позволяет определить стандартный шрифт для различных частей отчета.

PageNumInt позволяет производить нумерацию страниц.

Объекты доступа к данным. Команда NewDataObject поволяет произвести возможные подключения к данным, причем настройка свойств DataBaseConnection позволит подключиться к БД, DirectDataView позволяет извлекать данные из приложения Delphi. DriverDataView определяет запрос на подключение к БД. SimpleSecurityController позволяет реализовать механизм защиты, базирующийся на списках пользователей. DataLookUpSecurity сверяет имя пользователя и пароль с записями в БД. В самой простой форме компонент Region соответствует всей странице отчета, например, при создании в отчете списка. Но, изменяя размеры компонент и место положения, можно разместить несколько таких компонентов, которые создадут определенный дизайн отчета. Компонент Bands, как правило, располагается внутри Region. Существует два типа полос:

- DataBand – отображает информацию из DataView и содержит в себе несколько компонентов DataText.

- Band - для отображения заголовков и завершения в рамках региона.

Существует еще несколько типов заголовков Body. Выбор типа заголовка осуществляется с помощью BondStyle. Для управления компонентом Band используется редактор стиля полос, который позволяет выбрать возможности выбранного компонента Band.

Компоненты, связанные с данными. Внутри DataBand возможна реализация нескольких компонентов, связанных с данными (DataText). Для настройки свойства DataFields используется открывающийся список, если в рамках одного компонента DataText требуется отобразить значение только одного текстового поля. Но, используя редактор DataTextEditor, можно скомбинировать значения из нескольких полей, т.е. редактор позволяет произвести конкатенацию полей. DataMemo позволяет отобразить текст, не умещающийся в одной строке. Для этого настраиваются свойства DataView и DataFields. Для работы с компонентом необходимо запустить редактор MailMergeEditor через свойство MailMergeItems. В этом свойстве можно выбрать изменяемые поля Memo.

Вычисление итоговых значений. Компонент CalcText позволяет вычислить значение на основе некоторого набора значений. Свойство CalsType позволяет определить тип вычислений (средне, max, min). Свойство CountBlanks определяет, должны ли пустые поля участвовать в вычислениях. (RunningTotal=true, то значение не будет переустанавливать в 0, когда выводится на печать).