Руководства, Инструкции, Бланки

технология Rave Reports руководство img-1

технология Rave Reports руководство

Рейтинг: 4.3/5.0 (1838 проголосовавших)

Категория: Руководства

Описание

Основы Rave Reports - Студопедия

Основы Rave Reports

Начиная с Delphi 7, фирма Borland вернулась к идее использования отдельного приложения для создания отчетов. На сей раз, вместо генератора ReportSmith, было использовано другое приложение - Rave Reports. Одним из ключевых преимуществ этого генератора отчетов является то, что его ядро можно включить в состав собственного приложения. Таким образом, не требуется явно устанавливать библиотеки Rave Reports на все ПК, на которых будет выполняться разрабатываемое вами приложение БД.

В зависимости от того, какая версия Delphi у вас установлена - 7.0, 2005 или 2006, в вашем распоряжении окажется Rave Reports версии 5.0, 6.0 или 6.5. Существенных различий между ними нет, поэтому мы будем рассматривать версию 5.0. При необходимости, Rave Reports можно использовать и с более ранними версиями Delphi, а так же с рядом других IDE.

Что касается самого генератора Rave Reports, то он состоит из 3 частей:

· Ядра, которое обеспечивает управление отчетом, его предварительный просмотр и отправку на печать. Исполняемый код ядра включается в приложение Delphi при компиляции, делая его полностью автономным при работе на компьютере клиента;

· Визуальная среда разработки отчетов, предназначенная для разработки самих отчетов. Она позволяет добавлять к отчету страницы, размешать на них графические и текстовые элементы, подключать к отчетам источники данных и т.д. Отчеты сохраняются в файлах с расширением RAV и должны распространяться вместе с использующими их приложениями;

· Компоненты Rave Reports, обеспечивающие управление отчетами из приложения. Они расположенные на странице Rave палитры компонентов.

Основным преимуществом Rave Reports перед QuickReport является собственная визуальная среда разработки отчетов, которая, в принципе, позволяет добиться больших результатов при меньших усилиях. Правда, обратной стороной этого улучшения является то, что предварительно придется изучить эту среду, что несколько затруднительно, особенно учитывая весьма скупую справочную систему, поставляемую вместе с этим генератором отчетов. Поэтому для начала остановимся на самой интегрированной среде разработки Rave Reports, тем более что разработка отчета при помощи Rave начинается как раз с его конструирования в самой среде, и лишь после этого в разрабатываемом приложении в Delphi настраивается связь приложения с отчетом при помощи компонентов, расположенных на странице Rave.

© studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам

Другие статьи

Технология rave reports руководство

/ Lab_Rab_BD / LAB3 / From_Internet / RaveReports

Лабораторная работа № 3.

Как правило, БД используется для обработки информации. Ее результаты отображаются в отчетах. Отчет – это документ, который распечатывается на принтере, чтобы затем на его основе принимать решения. В Delphiотчет представляет собой специально оформленную информацию из БД и предназначен для наглядного ее отображения в виде особой формы. Его можно просмотреть на экране, а затем распечатать на принтере. Подобная форма содержит специальные компоненты, которые определяют данные и внешний вид отчета при печати. Перевод представления данных из формы в отчет осуществляется с помощью генератора отчетов. В пакетеDelphi7.0 имеется генератор отчетовRave Reports 5.0 от фирмы Nevrona, который позволяет просматривать, сохранять в файл, читать из файла и печатать отчет, вместо старого генератора отчетовQuickReport2.0 .

Компоненты Rave Reports.

Во-первых, компоненты QReport по-прежнему доступны разработчику — пакет DCLQRT70.BPL все так же занимает прочное место в папке \Delphi7\Bin и может быть установлен в Палитру компонентов обычным способом. Да и было бы странно ожидать другого от фирмы Borland, которая бдительно следит за обратной совместимостью приложений. Посмотрите к примеру на страницу Win 3.1 Палитры компонентов — новые поколения программистов никогда не видели "прабабушку" Windows XP, и все же исторические компоненты занимают свое исконное место!

Во-вторых, схема создания и внедрения отчетов в приложения Delphi практически не изменилась. В Rave Reports имеются и глобальный класс отчета, и классы полос, и компоненты преобразования данных. Существенным нововведением можно считать только визуальную среду создания отчетов, что несомненно облегчит жизнь создателей отчетов и сделает их работу эффективнее и приятнее.

Тем не менее, в Delphi 7 генератор отчетов Rave Reports является основным средством создания отчетов и его компоненты устанавливаются в Палитре компонентов по умолчанию на странице Rave. Поэтому главы этой части посвящены разнообразным аспектам разработки отчетов в Rave Reports.

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

какие компоненты входят в состав Rave Reports и на какие функциональные группы они делятся;

что такое проект отчета и его структура;

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

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

Генератор отчетов RaveReports5.0

Генератор отчетов RaveReports5.0 разработан фирмойNevronaи входит в составDelphi7 в качестве основного средства для создания отчетов. Он состоит из трех частей:

ядро генератора отчетов обеспечивает управление отчетом и его предварительный просмотр, и отправку на печать. Исполняемый код ядра сервера включается в приложение Delphi, делая его полностью автономным при работе с отчетами на компьютере клиента;

визуальная среда разработки отчетов RaveReportsпредназначена для разработки самих отчетов. Она позволяет добавлять к отчету страницы, размешать на них графические и текстовые элементы управления, подключать к отчетам источники данных и т. д. Отчеты сохраняются в файлах с расширениемravи должны распространяться совместно с приложениями, использующими их;

компоненты RaveReportsрасположены на страницеRaveПалитры компонентовDelphi. Они обеспечивают управление отчетами в приложении.

Генератор отчетов устанавливается при инсталляции Delphiв папку \Delphi7\Rave5. Исходные коды компонентов разработчикам вDelphiнедоступны.

Безусловно, визуальная среда разработки заметно упрощает процесс создания отчетов и позволяет добиться лучших результатов меньшими усилиями, чем в генераторе отчетов QuickReport, который использовался в предыдущих версияхDelphi. Тем не менее при первом знакомстве с продуктом заметны и его недостатки. Система помощи оставляет тягостное впечатление не только своей крайней лаконичностью, но и фактическими ошибками. Многие свойства и методы остались недокументированными, и наоборот — имеющиеся в статьях подсказки описания не имеют реальных аналогов в коде компонентов.

Однако будем надеяться, что недостатки будут со временем исправлены. А мы займемся детальным знакомством с процессом создания отчетов. Компоненты RaveReportsи их назначение

Компоненты для создания отчетов и управления расположены на странице RaveПалитры компонентов. Они делятся на следующие функциональные группы.

Компонент отчета TRvproject, с точки зрения приложения, и есть отчет. Он обеспечивает загрузку заранее созданного в визуальной средеRaveReportsотчета из файла с расширениемrav.

Подробнее об использовании компонента TRvprojectрассказывается в ниже в этой главе.

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

Подробнее об использовании компонента TRvSystemрассказывается в ниже в этой главе.

Компоненты соединения с источниками данных предназначены для подключения различных источников данных к отчетам. При этом могут использоваться технологии доступа к данным ADO,BDE,dbExpress(см. частьIV).

К этой группе относятся компоненты:

Подробнее об использовании этих компонентов рассказывается в гл. 25.

Компоненты преобразования данных позволяют конвертировать отчеты из формата данных RaveReportsв другие форматы (текстовый,PDF,HTML,RTF), а также распечатывать или просматривать отчеты.

К этой группе относятся компоненты:

Руководство пользователя Руководство и справочник This manual and all material accompanying it is


  • Введение в Rave и задачи отчетов.

  • Навигация по панелям.

  • Объяснение основных компонент Page.

  • Короткий обзор панелей, дерева проекта и панели свойств.
Что такое RAVE?


Отчеты являются одним из наиболее сложных вещей, еще более сложной задачей, для некоторых являются базы данных. Отчеты предназначены для быстрого получения визуальной информации из данных. Для решения данной проблемы, на наиболее информационный манер, традиционные генераторы отчетов предлагают, секционное, в стиле таблиц представление данных. На сегодняшний день имеются более сложные требования к отчетам, которые не так легко решить стандартными секционно-табличными средствами.

Добро пожаловать в следующий уровень визуального проектирования отчетов! Визуальный Rave дизайнер предлагает многие уникальные свойства, которые помогут сделать процесс получения отчетов проще, быстрее и более понятным. Rave является интуитивной, визуальной средой разработки, которая может легко управлять широким спектром отчетов, много больше, чем чистый, рассчитанный на секции дизайнер. Rave также включает зеркальное отражение и другие технологии, для повторного использования содержимого ваших отчетов для быстрого внесения изменений и боле простого обслуживания. В действительности, Rave был специально разработан для получения гибкости и функциональности, в простом для освоения формате.

С чего начать? Поскольку, Rave является странично - ориентированным дизайнером, многие из его свойств должны быть понятны и легки для использования после небольшой практики. Есть большое количество параметров и других вещей, которые совсем понятны, при начальном освоении. Тем не менее, запомните, что многие из этих параметров могут быть просто проигнорированы в начале, но потом, они вам потребуются, после того как Вы приобретете более обширные знания. В действительности, помощники «Wizards» сгенерируют вам "стандартные" отчеты без знания, что происходит за сценой. Тем не менее, мы рекомендуем, что бы Вы потратили немного времени и быстро прочитали данное руководство.

В инсталляцию Rave включен проект, названный "RaveDemo", который содержит примеры различных отчетов. Что бы увидеть общий идеи, запустите RaveDemo.exe и откройте проект RaveDemo, для доступа к различным типам отчетов. Изучение проекта RaveDemo и других примеров является прекрасным методом изучения Rave.

Среда RAVE - Report Authoring Visual Environment


Отчет может быть описан, как представление данных в визуальном виде, которое можно распечатать на бумаге или просматривать в электронном виде. Обычно, имеется набор таблиц, которые предоставляют данные для создания отчета. Например, представим себе: таблицу заказчиков «Customer», таблицу продукции «Products», и таблицу продаж «Items Sold». Данные таблицы должны быть скомбинированы для получения формы письма, счета и списка заказчиков.

Начнем с быстрого обзора Rave. Первый шаг используем Rave для запуска программы. Первая вещь, которую мы увидим, будет представление на экране страницы с закладками, с двумя окнами по обе стороны страницы и панели вверху экрана. На первый взгляд, слишком много элементов дизайнера Rave, для первого раза, что бы начать работать.

Начнем с того, что показывается при старте Rave. Для начала, поймите, что есть две группы панелей, отображаемых в дизайнере Rave; это компоненты и инструменты.

Компоненты, это такие элементы, которые "бросаются" или видны на странице редактора. Это могут быть секции, штрих коды, линии, графические примитивы, и другие. Пока не будем беспокоиться об этих вещах. Если объект виден на странице, то это компонент.

Панели, которые могут изменять компоненты, являются панелями инструментов. Есть несколько таких панелей: выравнивания, палитра цветов, редактор шрифтов и другие. Если на странице есть прямоугольник, который нужно закрасить цветом фона, сначала выберите данный прямоугольник, щелкнув на нем. Затем, используя панель цветов, смените цвет на требуемый. Панели можно скрывать и показывать, выбирая их из меню Tools. Для представления обзора в более простом виде, панели могут скрываться, до тех пор, пока они не понадобятся.

Заметим, что это был очень быстрый обзор. Имеется множество настроек и свойств, которые управляют поведением каждой части визуального дизайнера. Данное руководство состоит из двух частей, Описание системы Rave, включая компонент и инструмента, затем глава справочника, которая содержит подробное описание каждого свойства. Сначала, пройдите главы Описания, и только за тем переходите к главе справочника, для большего понимания различных свойств.

Первый взгляд


Когда Rave первый раз запускается, то открывается окно, похожее на ниже представленную картинку. Поскольку Rave помнит, какой файл был открыт последний раз, ваше окно может немного отличаться. Но, области, показанные на данном рисунке, являются фундаментальными. Мы сначала расскажем о каждой части окна, что бы дать общее представление о дизайнере Rave.


Область навигации


На самом верху визуального дизайнера Rave расположена область навигации. Сюда могут индивидуально прилепляться (docking) панели, и также могут присоединяться закладки. Присоединение панелей позволяет пользователю видеть все кнопки на панели и видеть больше панелей одновременно. Присоединение панелей позволяет иметь простой доступ до панелей, но только одна панель видна в тоже время.

Панели могут содержать одновременно и компоненты и инструменты. Инструмент это свойство, которое позволяет изменять объект на странице, как редактор шрифтов или палитра цветов. Компонент это объект, который размещается на странице как группа, линия, текст, регион или секция. Для поиска имени кнопки на панели, просто переместите мышь на кнопку, и появится всплывающая подсказка. Также, заметим, что при выборе кнопки она утапливается. Отжимается, когда кнопка нажимается.

Каждую панель можно спрятать. Что бы спрятать или показать панель, перейдите в меню Tool и выберите необходимую панель, из пункта Toolbars.

Руководство пользователя Руководство и справочник This manual and all material accompanying it is

Руководство пользователя Canon Speedlite 580 ex 4 Индикация 6 Начало работы 7 Установка элементов питания 7

Соединения с источниками данных в Rave Reports

Соединения с источниками данных в Rave Reports

Если отчет Rave Reports должен отображать данные из какого-либо источника данных, на этапе разработки в визуальной среде в проект отчета должны быть добавлены специальные объекты, обеспечивающие соединение с источником данных и формирование набора данных, который затем отображается в отчете.

В Rave Reports существуют два типа соединений с источниками данных (рис. 26.1):

  • соединение через драйвер Rave Reports;
  • соединение через компонент Rave Reports и компонент набора данных в приложении Delphi.

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

При соединении через драйвер Rave Reports проект отчета на этапе разработки и ядро генератора отчетов на этапе выполнения используют драйверы, которые реализованы в виде файлов с расширением rvd. Именно наличие этих файлов предопределяет выбор технологий доступа к данным при создании объекта соединения в среде разработки (рис. 26.2). В стандартную поставку Rave Reports 5.0 входят драйверы для следующих технологий доступа к данным:

Рис. 26.1. Соединения с источниками данных в отчете Rave Reports

При соединении через компоненты в Delphi сначала необходимо создать объект просмотра Direct Data View, который реализует прямой доступ к набору данных на основе активного соединения в приложении Delphi. При этом соединение может быть создано на основе любой доступной в Delphi технологии доступа к данным. Это позволяет сделать набор компонентов Rave Reports на странице Rave Палитры компонентов Delphi. Это следующие технологии доступа к данным:

  • ADO;
  • DbExpress;
  • BDE;
  • InterBase Express;
  • клиентские наборы данных распределенных приложений;
  • источники данных, не использующие базы данных (текстовые файлы, электронная почта, электронные таблицы и т. д.) .

За визуализацию данных в отчете отвечают специализированные элементы оформления, расположенные на странице Report Палитры инструментов визуальной среды Rave Reports. Они связываются с полями объекта просмотра данных, созданного разработчиком. Это может быть просмотр на основе запроса SQL, созданного разработчиком, или прямой просмотр набора данных Delphi. Просмотр объединяет нужные поля из таблиц, которые доступны через соединение с источником данных (см. гл. 24). Для этого используется свойство Dataview элементов оформления.

Соединения с источниками данных в Rave Reports

Генератор отчетов RAVE 5

Генератор отчетов RAVE 5

В связи начинающим распространением Дельфи 7, в последнее время часто стали появлять вопросы "где вхять документацию".
Спешу обрадовать страждущих, я приступил к перувод двух книг по данном генератору и ближайшем будущием они будут доступны для широкой публики, ориентировончо в течении следующей недели.

Полный анонс о публикации поступит после размещения книги на моем сайте.

Это, что,- серьезно али шутка?

Если серьезно, то дело великое и благостное


> gek © (03.04.03 20:08)

Есть Anatoly Podgoretsky, а есть app
с первым шутить можно :)

Перевод первой книги "Rave Reports 5 Borland Edition - руководство разработчика" закончен.
Книга доступна для скачивания с моего сайт из разделов DDP или Language.

В ближайшее время планирую приступить к переводу второй книги
"Rave Reports 5 Borland Edition - руководство пользователя"

Наконец закончен перевод второй книги по RAVE, местами немного корявый, но даремному коню в зубы не смотрят.
Качество оригинала весьма отличается от первой книги, но помогают упражнения, наряду с ними обязательно надо использовать и примеры, поставляемые с RAVE.

В кратце, что такое RAVE и чем он отличается от других генераторов. Основное различии RAVE от других традиционных генераторов, типа QuickReport и FastReport, в том, что он построен не по трационной схеме, отчеты строимые на основе полосок, секций, а на основе страничной организации. Этим он очень близок и по идеологии и по методике к Word и Excel.
И позволяет строить очень сложные отчеты.
Примерно как сравнивать блокнот и Ворд.

Данная книга доступна для скачивания, так как и первая с моего сайта, разделы DDP и LANGUAGE
http:/podgoretsky.com/ddp.html
http:/podgoretsky.com/lang.html

Я постарался вычистить множественные очепятки, но вероятно их осталось еще много.

Выдержка из главы "От переводчика"

Это вторая из двух книг посвященных генератору отчетов Rave Reports.
Главы «Лицензия на одного пользователя» и «Ограниченные гарантии» оставлены без перевода.
Поскольку у меня нет самого RAVE, то возможно местами качество перевода будет не совсем адекватное, поскольку невозможно проверить, что действительно кроется за тем или другим пунктом документации.
В документации очень много ошибок и несуразностей. Отсутствие некоторых глав как, например главы об очень важной части RAVE, об их технологии «mirroring» (зеркальное отражение частей отчета в другом месте без копирования), кстати, как и многое другое, включая отсутствующие отдельные куски текста, скопированные из других глав, но не измененные по контексту, разнобой в терминологии, многократное повторения вокруг темных мест, но не объяснения самой сути этого места и многое другое. И чем дальше к концу книги, тем хуже положение. Но это часто обычная ситуация разрабатывают прекрасный продукт, а документация страдает, но не до такой же степени.
Это не очень солидно для фирмы, видимо очень торопились или это был не очень ответственный работник, книга очень отличается по качеству от книги «Руководства разработчика», где такие ляпы практически отсутствуют. Так что если где-то, что-то вызывает недоумение, то знайте, что здесь не только переводчик виноват, но и авторы постарались. К сожалению, я не в состоянии изменить их ошибки, только местами.

Бегло просмотрел
Спасибо Anatoly Podgoretsky ©

Хотя лично мне пока не нужен

Спасибо добавлено.
http://blackman.wp-club.net/cncat/
Ждите гостей. Вчера там было около 900.

Изучаем Delphi - Отчеты в базах данных, компоненты Rave Reports и VCL

Новые материалы

Сравнительный обзор Nokia Lumia 920 и HTC 8X">Девайсы:
Сравнительный обзор Nokia Lumia 920 и HTC 8X Обзор Nokia Lumia 820 – смартфона на WP8">Девайсы:
Обзор Nokia Lumia 820 – смартфона на WP8 Настройка Apache, PHP и MySQL для Linux-VPS">Вебмастеру:
Настройка Apache, PHP и MySQL для Linux-VPS VPS на домашнем ПК: настройка сети в VM VirtualBox и Debian">Вебмастеру:
VPS на домашнем ПК: настройка сети в VM VirtualBox и Debian VPS на домашнем ПК: устанавливаем Linux Debian 6">Вебмастеру:
VPS на домашнем ПК: устанавливаем Linux Debian 6 VPS на домашнем ПК: установка VM VirtualBox">Вебмастеру:
VPS на домашнем ПК: установка VM VirtualBox Иные возможности текстового процессора Word">Работа на компьютере:
Иные возможности текстового процессора Word Вставка объектов">Работа на компьютере:
Вставка объектов Таблицы в Word">Работа на компьютере:
Таблицы в Word Печать и сохранение документов">Работа на компьютере:
Печать и сохранение документов Сноски, колонтитулы, оглавление и указатели в Word">Работа на компьютере:
Сноски, колонтитулы, оглавление и указатели в Word

Очтеты в Delphi

Вопрос рассмотрения работы с базами данных в Delphi был бы не полным, если не рассмотреть работу с отчетами. Отчеты представляют собой печатные документы, получаемые в результате выполнения запросов к БД. А распечатка всевозможных бумажных документов - одно из основных предназначений приложений БД.

Отчеты в Delphi

Для упрощения процесса составления отчетов в поставку всех версий Delphi входят специальные программные средства - генераторы отчетов. В первых версиях Delphi это был ReportSmith, затем, с Delphi 3 по Delphi 6 - QuickReport, а начиная с Delphi 7 и заканчивая Delphi 2006 - Rave Reports.

ПРИМЕЧАНИЕ
В поставку Delphi 7 так же входит и QuickReport, однако по умолчанию этот инструментарий отсутствует на панели компонентов. Чтобы воспользоваться QuickReport в этой версии Delphi, следует открыть Component ' Install Packages, нажать кнопку Add и выбрать файл dclqrt70.bpl в подкаталоге …Delphi\Bin.

Генераторы ReportSmith и Rave Reports представляют собой отдельные приложения, при помощи которых можно создавать отчеты, в то время, как QuickReports - это набор VCL-компонентов, которые помещают непосредственно на стандартную форму Delphi.

В простейшем случае работа с QuickReport выглядит следующим образом: создается новая форма, на которую помещают компонент QuickRep. Затем при помощи составного свойства Bands определяют, какие основные составные части отчета требуются:

  • HasColumnHeader - заголовки столбцов;
  • HasDetail - сами столбцы (собственно данные);
  • HasPageFooter - нижний колонтитул страницы;
  • HasPageHeader - верхний колонтитул страницы;
  • HasSummary - итоговое значение по столбцам данных;
  • HasTitle - общий заголовок отчета.

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

Рассмотрим простейшее приложение, использующее отчет. Для этого создадим новый проект в Delphi (если у вас Delphi 7, то сначала подключите QuickReport, как описано в примечании, если же у вас более новая версия - то можете пропустить этот текст и сразу перейти к следующему параграфу). Затем на главную форму поместите 3 кнопки - "Просмотр", "Печать" и "Выход", а в заголовке окна (Caption) напишите "QuickReport demo" (рис. 22.1).

Теперь создадим новую форму, поместим на нее компонент Table, установим свойство DatabaseName в DATA1, а для TableName выберем Customer, после чего установим свойство Active в истину. Таким образом, мы подготовили данные для вывода. Теперь поместим на форму компонент QuickRep, который визуально предствляет собой лист отчета и установим в свойстве Bands флаги HasColumnHeader, HasDetail, HasPageFooter и HasTitle. В результате на "листе" появятся 4 области, представляющие собой соответствующие логические части отчета. Теперь в центре самой верхней области - Title - поместим компонент QRLabel. Это аналог стандартной подписи (Label), предназначенный специально для отчетов QuickReport. В свойстве Caption напишем "Клиенты", после чего можно увеличить размер шрифта, сделать его полужирным или выбрать другую гарнитуру, чтобы заголовок не "затерялся".

Следующим этапом будет собственно подготовка к выводу данных отчета. Поскольку мы выбрали таблицу клиентов, то выводить будем 2 колонки - номер клиента в базе (поле CUST_ID) и иго имя (CUST_NAME). Для этого сначала на области заголовков столбцов (Column Header) разместим еще 2 надписи, воспользовавшись QRLabel, в свойстве Caption которых напишем "№" и "Имя". В следующей области, Detail, непосредственно под этими надписями, поместим 2 компонента QRDBText. Эти компоненты, в свою очередь, можно назвать аналогами компонент DBText, предназначенных для вывода данных из БД в строковом формате. Свойство DataSet компонентов QRDBText следует установить в Table1, а DataField - в CUST_ID у одного и в CUST_NAME - у другого. Здесь надо отметить, что компоненты, помещенные в области Detail, при печати будут повторяться построчно столько раз, сколько требуется для вывода всех данных из указанного источника. Но следует учитывать, что и у компонентов, используемых для вывода полей, и у основы отчета - компонента QuickRep, должен использоваться один и тот же источник данных. В данном случае это Table1.

Последнее, что остается - это определить содержимое нижнего колонтитула. Для этого в области Page Footer поместим компонент QRSysData. Прямого аналога в VCL у этого компонента нет, можно назвать его "продвинутой" версией текстовой подписи, которая может менять свое содержимое в зависимости от состояния отчета. За тип выводимой информации отвечает свойство Data, которое может принимать одно из следующих значений: qrsDare, qrsDateTime, qrsDetailCount, qrsDetailNo, qrsPageNumber, qrsReportTitle и qrsTime. Соответственно, будет выводиться текущая дата, дата и время, количество записей на странице, номер последней записи на странице, номер страницы, название отчета, или текущее время. Поскольку записей в таблице у нас весьма немного, то остановимся на втором варианте - выводе даты и времени составления отчета. Впрочем, при необходимости всегда можно использовать несколько таких компонентов, чтобы вывести всю необходимую информацию.

В результате, после всех действий по настройке отчета, мы получим заготовку, представляющую собой изображение листа с заданными нами подписями и намеченными местами для вывода данных (рис. 22.2).


Рис. 22.2. Форма Delphi с отчетом QuickReport

Теперь остается написать код для обращения к этому отчету. Для этого вернемся к первой (главной) форме приложения, в начале секции implementation подключим форму с запросом при помощи ключевого слова uses и создадим обработчики событий для кнопок, как показано в листинге 22.1.

Листинг 22.1. Исходный код приложения QuickReport demo

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, QRCtrls, QuickRpt, ExtCtrls, DB, DBTables; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); end; var Form1: TForm1; implementation uses unit2; <$R *.dfm> procedure TForm1.Button3Click(Sender: TObject); begin close; end; procedure TForm1.Button1Click(Sender: TObject); begin Form2.QuickRep1.Preview; end; procedure TForm1.Button2Click(Sender: TObject); begin Form2.QuickRep1.Print; end; end.

Как видно из кода, вся программная работа заключается в вызове метода Preview для просмотра отчета и метода Print для вывода на печать. С исходным кодом так же можно ознакомится в каталоге Demo\Part4\QReport.

Основы Rave Reports

Начиная с Delphi 7, фирма Borland вернулась к идее использования отдельного приложения для создания отчетов. На сей раз, вместо генератора ReportSmith, было использовано другое приложение - Rave Reports. Одним из ключевых преимуществ этого генератора отчетов является то, что его ядро можно включить в состав собственного приложения. Таким образом, не требуется явно устанавливать библиотеки Rave Reports на все ПК, на которых будет выполняться разрабатываемое вами приложение БД.

В зависимости от того, какая версия Delphi у вас установлена - 7.0, 2005 или 2006, в вашем распоряжении окажется Rave Reports версии 5.0, 6.0 или 6.5. Существенных различий между ними нет, поэтому мы будем рассматривать версию 5.0. При необходимости, Rave Reports можно использовать и с более ранними версиями Delphi, а так же с рядом других IDE.

Что касается самого генератора Rave Reports, то он состоит из 3 частей:

  • Ядра, которое обеспечивает управление отчетом, его предварительный просмотр и отправку на печать. Исполняемый код ядра включается в приложение Delphi при компиляции, делая его полностью автономным при работе на компьютере клиента;
  • Визуальная среда разработки отчетов, предназначенная для разработки самих отчетов. Она позволяет добавлять к отчету страницы, размешать на них графические и текстовые элементы, подключать к отчетам источники данных и т.д. Отчеты сохраняются в файлах с расширением RAV и должны распространяться вместе с использующими их приложениями;
  • Компоненты Rave Reports, обеспечивающие управление отчетами из приложения. Они расположенные на странице Rave палитры компонентов.

Основным преимуществом Rave Reports перед QuickReport является собственная визуальная среда разработки отчетов, которая, в принципе, позволяет добиться больших результатов при меньших усилиях. Правда, обратной стороной этого улучшения является то, что предварительно придется изучить эту среду, что несколько затруднительно, особенно учитывая весьма скупую справочную систему, поставляемую вместе с этим генератором отчетов. Поэтому для начала остановимся на самой интегрированной среде разработки Rave Reports, тем более что разработка отчета при помощи Rave начинается как раз с его конструирования в самой среде, и лишь после этого в разрабатываемом приложении в Delphi настраивается связь приложения с отчетом при помощи компонентов, расположенных на странице Rave.

Среда Rave Reports

Вызвать визуальный конструктор Rave Reports можно из меню Delphi, выбрав пункт Tools'Rave Designer. В результате запустится приложение - среда разработки отчетов Rave Reports (рис. 22.3).

Интерфейс визуального конструктора отчетов вполне стандартен для Windows-приложений и напоминает интерфейс самой среды Delphi. В самом верху расположено меню, а под ним - панели инструментов. Слева расположены 2 панели, дублирующие наиболее востребованные команды программы. Справа располагается многостраничная панель инструментов, подобная палитре компонентов в Delphi, на ней находятся компоненты, при помощи которых и создаются отчеты.

Ниже расположена основная часть окна, разделенная на 3 части. Так, слева расположен инспектор компонентов отчета, при помощи которого настраиваются свойства выбранного компонента, подобно тому, как это осуществляется в инспекторе объекта в IDE Delphi.

В центральной части окна визуального конструктора располагается блокнот с 2 вкладками - Page Designer (конструктор страниц) и Event Editor (редактор событий). На вкладке конструктора страниц можно добавлять, удалять и редактировать компоненты отчета. При этом, поскольку отчеты могут быть многостраничными, то эта вкладка, в свою очередь, так же является блокнотом, каждый лист которого представляет собой страницу отчета. Что касается вкладки редактора событий, то на ней, при необходимости, определяют обработчики событий для отчетов и их составных частей - страниц, элементов оформления и т.д.

Справа расположено дерево проекта отчета, которое отображает состав проекта и в котором можно выбрать нужный компонент. При помощи двойного щелчка мышкой по выбранному в дереве элементу можно выделить соответствующий элемент на странице и увидеть его свойства в инспекторе компонентов отчета

Само дерево состоит из 3 "ветвей":

  • Report Library - библиотека отчетов, содержащая все отчеты проекта вместе со всеми их составляющими - страницами, элементами оформления и т.д. упорядоченные в иерархической структуре;
  • Global Page Catalog - каталог глобальных страниц, содержащий страницы, общие для всех отчетов проекта;;
  • Data View Dictionary - словарь просмотров данных, содержащий объекты соединения с данными из внешних источников.

Здесь следует отметить, что все создаваемые в Rave Reports отчеты являются частью проектов. Проект может содержать произвольное число отчетов, а каждый отчет, в свою очередь, может состоять из произвольного числа страниц. При этом словарь просмотров данных, как и страницы из глобального каталога являются общими для всех отчетов проекта. При работе с проектом выделяют какой-либо отчет, который называется текущим отчетом. Сразу после открытия проекта текущим становится первый отчет, но при необходимости всегда можно выбрать нужный отчет при помощи двойного щелчка мышкой по его названию в дереве проекта.

Чтобы добавить новый отчет к проекту с помощью команды New Report из меню File, а новая страница в отчете добавляется при помощи команды New Report Page из этого же меню. Сразу после создания объект незамедлительно появляется в соответствующей ветви дерева проекта.

Если проект включает в себя несколько отчетов, и требуется создать страницу, которая будет использоваться в нескольких их них, то следует создать страницу для каталога глобальных страниц при помощи команды New Global Page. После создания такую страницу можно редактировать и добавлять в состав любого входящего в проект отчета.

Состав и порядок вывода страниц отчета определяется при помощи свойства PageList отчета. Это свойство доступно из инспектора компонента отчета, когда в дереве проекта выбран сам отчет. Для выбора страниц и их упорядочивания следует нажать на кнопку с многоточием, при этом появится редактор страниц отчета (Page List Editor), при помощи которого определяют выводимые на печать страницы, а так же настраивают порядок их вывода (рис. 22.4).

Все доступные страницы отчета находятся в 2 списках. В первом (Report Pages) доступны все страницы текущего отчета, а во втором (Global Pages) - все глобальные страницы проекта. При нажатии кнопок Add Page и Add Global страницы попадают в список Page List. Уже после внесения в список можно менять порядок вывода страниц, а так же удалять их из этого списка при помощи кнопок, расположенных слева.


Рис. 22.5. Создания объекта данных - выбор типа источника

Наконец, новый источник данных создается при помощи команды New Data Object. При этом открывается диалоговое окно Data Connections (рис. 22.5), в котором следует выбрать один из 5 предлагаемых типов объектов:

  • Data Lookup Security Controller - контроллер безопасности поиска данных, обеспечивающий авторизацию пользователей по имени и паролю;
  • Database Connection - соединение с БД, устанавливает соединение с внешним источником данных;
  • Direct Data View - прямой просмотр данных, создает просмотр данных для активного соединения с источником данных;
  • Driver Data View - просмотр данных через драйвер, создает просмотр данных на основе уже имеющегося соединения;
  • Simple Security Controller - простой контроллер безопасности, определяет список пользователей для организации доступа.

После выбора типа, если выбран вариант соединения с базой данных, будет предложено определиться с типом источника - BDE, ADO или dbExpress (DBX), а затем, в зависимости от выбранного варианта, будет предложено либо указать псевдоним БД в BDE, либо определить параметры соединения.

ПРИМЕЧАНИЕ
В Rave Reports 6.x имеется так же поддержка источников данных IBX - Interbase Express. Так же можно отметить, что версии 6 и 6.5 выгодно отличаются от более ранних наличием полноценной справочной системы.

После того, как источник данных создан, он появляется в дереве проекта отчетов в группе Data View Dictionary. Все источники данных являются общими и доступны для всех отчетов проекта.

Компоненты Rave Reports для создания отчетов

Для создания и оформления отчетов в среде Rave Reports имеется многостраничная панель инструментов, имеющая 10 вкладок:

  • Drawing - графические компоненты для оформления отчета;
  • Bar Code - компоненты для вывода различных вариантов штрихкода;
  • Standard - компоненты для отображения текста и графики;
  • Report - компоненты для отображения данных;
  • Zoom - компоненты для изменения масштаба отображения при разработке отчета;
  • Colors - компоненты для выбора цвета графических элементов оформления;
  • Lines - компоненты для определения толщины и стиля линий графических элементов оформления;
  • Fills - компоненты для определения типа заливки элементов оформления;
  • Fonts - компоненты для определения параметров текста;
  • Alignment - компоненты для выравнивания элементов отчета на странице.

По сути, именно компонентами являются только те элементы, что расположены на первых 4 вкладках - Drawing, Bar Code, Standard и Report. При этом компоненты, расположенные во вкладках Drawing, Bar Code и Standard используются для визуального оформления и вывода статичной информации, в то время как собственно за вывод данных отвечают компоненты, расположенные на вкладке Report. Названия и описания всех компонентов, предназначенных для оформления отчетов, сведены в таблице 22.1.

Таблица 22.1. Компоненты для оформления отчетов в Rave Reports

Группа непечатных компонентов, используемых для вычисления данных на основе информации, доступной из источников (просмотров) данных

Что касается всех остальных компонентов, то они, по сути, являются лишь командами для изменения свойств отображения элементов отчета.

Для добавления компонента к отчету достаточно выбрать его на панели инструментов и щелкнуть по нужному листу отчета. При этом печатные компоненты появляются как на листе - в том месте, где был произведен щелчок мышкой, так и в дереве проекта. Непечатные же компоненты на листах не отображаются - доступ к ним возможен только из дерева проекта отчета.

Компоненты Rave Reports в VCL

Для взаимодействия с приложениями, создаваемыми в Delphi, вместе с Rave Reports поставляется набор VCL-компонент. В Delphi 7 и более поздних версиях они установлены по умолчанию и находятся на вкладке Rave палитры компонентов Delphi.

Все компоненты Rave можно условно разделить на 4 категории - для управления проектом, для организации соединений с данными, для вывода на печать или на экран, а так же для экспорта в какой-либо формат. Всего же их насчитывается 13:

  • RvProject - ключевой компонент, используемый для взаимодействия между отчетом Rave и приложением Delphi;
  • RvSystem - компонент, обеспечивающий взаимодействие между отчетом и функциями по печати и просмотру отчета. Фактически, RvSystem является интегрированной версией RvNDRWriter, RvRenderPreview и RvRenderPrinter;
  • RvCustomConnection - обеспечивает соединение с источником данных типа текстового файла, таблицы Excel и т.п.;
  • RvDataSetConnection - обеспечивает соединение с набором данных СУБД;
  • RvTableConnection - обеспечивает соединение с компонентом типа Table;
  • RvQueryConnection - обеспечивает соединение с компонентом типа Query;
  • RvNDRWriter - компонент для подготовки отчета в специальном двоичном формате для дальнейшего вывода на принтер или для просмотра на экране;
  • RvRenderPreview - компонент, обеспечивающий вывод отчета на экран;
  • RvRenderPrinter - компонент, обеспечивающий вывод отчета на печать;
  • RvRenderPDF, RvRenderHTML, RvRenderRTF, RvRenderText - группа компонентов, обеспечивающих экспорт отчета в форматы PDF, HTML, RTF или в текстовый файл.

Наиболее важным для построения отчета компонентом, безусловно, является компонент RvProject, поскольку без его участия невозможно взаимодействие приложения с отчетами Rave Reports. Связь с проектом отчета осуществляется при помощи свойства Project File, которому присваивается имя RAV-файла с проектом отчета:

Поскольку в одном проекте Rave Reports может находиться несколько отчетов, то для выбора нужного отчета используется свойства ReportName, ReportFillName и ReportDesc, позволяющие сослаться на нужный отчет по его короткому или полному имени, или по описанию. Чтобы получить список всех отчетов проекта, можно прибегнуть к процедуре GetReportList, которая возвращает список всех отчетов проекта. При этом в качестве первого параметра, передаваемого этой процедуре, должен быть передан объект типа TStrings, а в качестве второго - булево значение, в зависимости от которого список будет заполнен либо сокращенными, либо полными названиями отчетов.

С другими компонентами Rave, используемыми для управления отчетом, компонент RvProject связывается при помощи свойства Engine. В типичном случае, в качестве Engine указывают компонент RvSystem, при помощи которого можно выводить отчет как на экран, так и на печать, или же экспортировать его в файл. Фактически, работа с отчетом Rave Reports в Delphi сводится к тому, что сначала при помощи компонента RvProject устанавливается связь с проектом и выбирается нужный отчет, после чего при помощи RvSystem отчет выводится на печать, в файл, или на экран.

Компоненты RvCustomConnection, RvDataSetConnection, RvTableConnection и RvQueryConnection предназначены для предоставления отчету источников данных из приложения Delphi. Именно эти компоненты будут отображаться при разработке отчета в среде Rave Reports, если при создании объекта данных (New Data Object) выбрать вариант прямого просмотра данных (Direct Data View). Разумеется, при этом должна быть запущена среда Delphi с загруженным приложением, содержащим подобные компоненты.

Пример создания отчета

Рассмотрим пример создания простейшего отчета с использованием Rave Reports. Пусть он будет выводить ту же самую таблицу и примерно в таком же виде, как и рассмотренный в начале этой главы отчет, созданный на базе VCL-компонентов QuickReport.

Для начала нам потребуется главная форма приложения, подобная той, что была использована в примере с QuickReport (см. рис. 22.1). Этой формой и ограничимся, поскольку в данном случае форма отчета создается не средствами VCL-компонент в IDE Delphi, а в специализированной среде Rave Reports. Поэтому единственный компонент доступа к данным - Table - мы так же поместим на этой форме. При этом, как и в предыдущем случае, установим свойство DatabaseName в DATA1, TableName - в customer, а Active - в истину.

Теперь перейдем к компонентам, расположенным на закладке Rave. Из них нам понадобятся RvProject - основной компонент отчета, RvSystem - для генерации отчетов и вывода их на принтер или в окно просмотра, а так же RvDataSetConnection - для взаимодействия с источником данных, т.е. с компонентом Table. Соответственно, следует связать компонент RvDataSetConnection с Table, установив у него в свойстве DataSet значение Table1. Что касается компонента RvProject, то его следует связать с компонентом RvSystem, для чего в свойстве Engine следует установить значение RvSystem1.

После этого можно приступить собственно к проектированию отчета, для чего нам понадобится загрузить среду Rave Reports. Сделать это можно как из меню Tools, так и при помощи двойного щелчка мышкой по компоненту RvProject.

В среде Rave Reports следует начать новый проект, выбрав пункт New из меню File. При этом автоматически создастся новый проект, уже содержащий пустой одностраничный отчет. Для начала подготовим заголовок страницы отчета, для чего вверху страницы, по центру, расположим текстовую надпись (компонент Text расположен на вкладке Standard), в свойстве Text которой, при помощи инспектора компонентов, укажем значение "Клиенты". Чтобы выделить эту надпись шрифтом, можно перейти на закладку Fonts и настроить вид надписи при помощи имеющихся на ней элементов управления. Затем наметим заголовки столбцов, для чего несколько ниже основного заголовка разместим еще 2 компонента Text, один из которых будет являться заголовкам для колонки с номерами клиентов в базе, а другой - для имен.

Таким образом, можно приступать к подготовке к выводу собственно данных. Но, прежде всего, нам потребуется определить источник данных, для чего следует создать объект данных (File ' New Data Object). В окне диалога Data Connections следует выбрать вариант Direct Data View и нажать на кнопку Next, после чего появится второй экран этого диалога со списком доступных соединений. Впрочем, в данном случае, список будет состоять всего из 1 элемента - RvDataSetConnection1, который мы и выберем. После нажатия на кнопку Finish, новый источник данных появится в дереве проекта под именем DataView1.

После всей проделанной подготовительной работы займемся выводом данных, для чего нам понадобятся компоненты отчета, расположенные на закладке Report. Прежде всего, поместим на лист компонент Region и при помощи мышки растянем его таким образом, чтобы он занял практически все свободное место на листе, поскольку именно размеры этого компонента определяют область, в которую будут выводиться данные. Затем, непосредственно на этот компонент, поместим другой - DataBand. На компонент DataBand, в свою очередь, поместим 2 компонента DataText, выровняв их по левому краю с заголовками столбцов (рис. 22.6).


Рис. 22.6. Разработанный отчет в среде Rave Reports

Теперь остается связать Data-компоненты с источником данных, для чего как для компонента DataBand, так и для обоих компонентов DataText следует установить свойство DataView в DataView1. Для компонентов DataText помимо этого следует выбрать еще и поля, которые они будут выводить, что определяется при помощи свойства DataField. Соответственно для левого компонента это будет CUST_ID, а для правого - CUST_NAME.

Фактически, разработку отчета можно считать завершенной, и можно сохранить проект, причем желательно в том же каталоге, что и приложение Delphi, которое данный отчет использует. После сохранения можно закрыть среду Rave Reports и вернуться к разработке в Delphi.

Прежде всего, нам следует указать имя файла проекта в свойстве ProjectFile компонента RvProject. В том случае, если проект был сохранен в том же каталоге, что и это приложение, то достаточно просто ввести имя файла. В противном случае потребуется указать полный путь, для чего можно нажать кнопку с многоточием напротив этого поля в инспекторе объектов и воспользоваться стандартным диалогом открытия файла. Кроме того, поскольку с одной стороны, при выполнении запроса на вывод отчета компонент RvSystem запрашивает, куда его выводить, а с другой у нас и так имеется 2 отдельных кнопки - для вывода на экран и на принтер, то в свойстве SystemSetups этого компонента следует выключить флаг ssAllowSetup.

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

Здесь в первой строке указывается, что вывод следует производить в окно просмотра на экран монитора, а во второй обеспечивается сам вывод. Для вывода же на печать следует лишь изменить значение, назначаемое свойств DefaultDest с rdPreview на rdPrinter:

Вместе с тем, следует учитывать, что для вывода из проекта будет браться первый попавшийся отчет, поэтому если отчетов будет несколько, то всякий раз следует указывать, какой именно отчет нам требуется. Сделать это можно при помощи метода SelectReport:

Кроме того, не было бы лишним явно загрузить отчет, для чего можно воспользоваться методом Open:

В результате, мы получим код, приведенный в листинге 22.2.

Листинг 22.2. Код приложения Rave Reports demo

procedure TForm1.FormCreate(Sender: TObject); begin RvProject1.SelectReport('Report1',true); RvProject1.Open; end; procedure TForm1.Button1Click(Sender: TObject); begin RvSystem1.DefaultDest:=rdPreview; RvProject1.Execute; end; procedure TForm1.Button2Click(Sender: TObject); begin RvSystem1.DefaultDest:=rdPrinter; RvProject1.Execute; end; procedure TForm1.Button3Click(Sender: TObject); begin close; end;

С самим приложением можно ознакомиться в каталоге Demo\Part4\RReport.

Избранное