Русский ответ Кристаллу!

Базы данных правят информационным миром. Разработчики систем управления базами данных (СУБД) сделали все возможное, чтобы их продукция работала быстро и надежно. В этой статье рассматривается продукт, предназначенный для разработчиков в MS Visual Studio, FoxPro, PowerBuilder, однако он также может использоваться совершенно самостоятельно.
Разработчики средств разработки приложений баз данных (таких как Ms Visual Studio и Borland Delphi) снабдили программистов средствами, позволяющими просто и быстро создавать приложения баз данных. Стандартная форма представления данных в таком приложении – таблица – не всегда устраивает пользователей. Конечные пользователи программного продукта зачастую хотят видеть данные распечатанными на принтере (с оформлением, упрощающим восприятие данных) или преобразованными в один из офисных форматов файлов. Преобразование представления данных в «удобочитаемые» форматы является одной из основных задач генераторов отчетов, но этим их возможности не ограничиваются.

Что такое современный генератор отчетов? Это одновременно и набор компонентов, доступных разработчику и позволяющих управлять генерацией отчетов из приложения, и отдельный модуль, способный генерировать отчеты для баз данных программного комплекса, наконец, генератор отчетов, это самостоятельное приложение, способное взаимодействовать с базами данных без помощи каких-либо «посредников». Современный генератор отчетов не только может выводить красиво оформленные данные на принтер или конвертировать их в другие «читабельные» форматы файлов, будь то Word, Excel или PDF. Важнейшей особенностью современных генераторов отчетов является возможность выполнять самостоятельную, независимую от СУБД и приложения БД, обработку данных, причем иногда эта обработка может быть очень сложной. Такой отчет может быть даже интерактивным (разумеется, если он не напечатан на бумаге). Включение функций самостоятельной обработки данных и интерактивности требует введения в сам генератор отчетов элементов средства разработки. Таким образом, современные генераторы отчетов представляют собой инструменты обработки данных, по сложности и функциональности приближающиеся к средствам разработки приложений БД.

Достойным представителем семейства генераторов отчетов является продукция компании Fast Reports Inc., выпустившей новую версию пакета FastReport Studio 3.16. О нем и пойдет речь в этой статье.

Основные характеристики FastReport Studio

FastReport Studio основан на технологии COM, и может использоваться совместно с любыми средствами разработки, поддерживающими эту технологию. Вы можете генерировать отчеты из программ, написанных на Visual C++, Visual Basic, C#, Microsoft Access, Microsoft FoxPro и Delphi. Основой иерархии компонентов FastReport Studio является компонент TfrxComponent. Иерархия включает компоненты управления отчетами, страницами, запросами к базам данных, а также набор компонентов для построения интерфейсов интерактивных отчетов. Благодаря этим компонентам, создаваемое вами приложение может генерировать отчеты как «самостоятельно», так и с использованием дизайнера отчетов FastReport Designer во время выполнения. Перечень отчетов, которые способен генерировать FastReport Studio включает как простые отчеты (красиво оформленные данные из таблиц), так и отчеты с многоуровневыми группами, отчеты с отношениями master-detail, перекрестные отчеты, отчеты с вложенными подотчетами, диаграммы и многие другие. Помимо распечатки отчетов на принтере, FastReport Studio поддерживает экспорт отчетов в форматы PDF, RTF, простой текст, HTML, CSV, таблицы Excel, передаваемые с помощью OLE или XML, а также в форматы изображений BMP, JPEG и TIFF. Дизайнер отчетов (FastReport Designer) представляет приложение, предназначенное как дял вызова из других программ, так и для самостоятельного построения отчетов. Внешний вид дизайнера (рис. 1), как и его функциональность, напоминает современные интегрированные среды разработки. Интернационализация интерфейса FastReport Designer выполнена на высоком уровне (программа установки продукта предлагает выбрать один из 25 языков).

Рисунок 1. FastReport Designer

Центральное окно визуального редактора отчета представляет собой нечто среднее между окном текстового редактора и окном редактора форм Borland Delphi. Верхняя панель инструментов позволяет настроить внешний вид различных компонентов отчета примерно также, как это делается при оформлении текста в Microsoft Word. Слева от окна редактора находятся окна, позволяющие управлять свойствами и событиями элементов генератора отчета на манер управления компонентами Delphi. Еще левее расположена палитра дополнительных компонентов для оформления отчета, таких как Memo – дополнительное текстовое поле, Picture – компонент для ввода графики или SubReport –компонент для создания подотчетов. Главное окно можно переключить в режим редактирования исходного текста обработчиков событий компонентов отчета и другого кода, связанного с отчетом.

Рисунок 2. Средство разработки диалоговых окон

Программирование отчета может быть выполнено на одном из нескольких языков, напоминающих распространенные языки программирования (Basic, C++, Java, Pascal). При этом в коде обработчиков доступны все объекты иерархии компонентов FastReport Studio, что придает существенную гибкость коду обработки данных. К сожалению, редактор кода не обладает функцией автоматического завершения ввода, которую мы уже привыкли видеть во многих IDE и IDE-образных продуктах. В актив встроенного интерпретатора FastReport Designer следует занести наличие встроенного отладчика. Кроме средств работы с компонентами самого отчета, FastReport Designer содержит редактор диалоговых окон, которые затем могут выводиться на различных этапах создания и вывода отчета. Встроенный редактор позволяет проектировать диалоговые окна, также как проектируются формы Delphi или C++Builder (рис. 2). В распоряжение разработчика окон (форм) предоставлены все стандартные компоненты пользовательского интерфейса (кнопки, списки прокрутки, строки ввода и т.п.), а также ряд специальных компонентов для работы с базами данных. Создание нового отчета в FastReport Designer можно выполнить с помощью одного из встроенных мастеров (рис. 3).

Рисунок 3. Мастера создания отчетов

Для генерации отчета нужно выбрать ADO-провайдер данных и подключиться к нужной базе данных. FastReport Designer может обрабатывать данные, предоставленные не только СУБД, но и другой программой, использующей пользовательские наборы данных. Далее следует задать SQL-запрос. К нашим услугам удобный визуальный SQL-дезайнер, позволяющий построить SQL-запрос с помощью мышки (рис. 4). В случае необходимости, SQL-запрос можно ввести и вручную в специальном окне редактора.

Рисунок 4. Визуальный дизайнер SQL-запросов

После завершения настройки источника данных дизайнер автоматически создает компоненты ADOQuery (инкапсулирующий SQL-запрос) и ADOTable (представляющий данные). Далее мы переходим к определению внешнего вида отчета. Тут нам предлагается большое количество предустановленных стилей, к которым можно добавить и свои собственные. При этом ничто не мешает отредактировать выбранный стиль в окне редактора и сохранить для последующего использования. Таким образом, путем всего нескольких щелчков мышью можно сгенерировать простой, но качественно выполненный отчет. Результаты работы можно просмотреть в окне предварительного просмотра, из которого готовый отчет можно распечатать на принтере или экспортировать в один из многочисленных форматов, поддерживаемых программой. Главное впечатление от работы с FastReport Designer – высокая самоочевидность интерфейса. Для построения довольно сложного отчета, использующего несколько подотчетов на основе таблиц с отношениями Master-Detail, мне не понадобилось заглядывать в справочную документацию программы и времени на эту работу у меня ушло совсем немного. Справочная документация понадобилась мне только тогда, когда я перешел к программированию отчетов.

Немного программирования

У каждого элемента отчета, создаваемого в FastReport Designer, есть свойства, методы и события. Но этим арсенал программиста FastReport Designer не исчерпывается. Дизайнер отчетов обладает большим набором встроенных переменных и функций. Переменные позволяют добавлять в отчеты такие данные как текущее время и дату, номера и общее число страниц. Среди встроенных функций FastReport Designer есть и типично «табличные» функции, такие как SUM и COUNT, есть и широкий набор математических функций, функций преобразования типов и форматов данных а также функций, предназначенных для введения в отчеты элементов интерактивности. Из событий, общих для всех компонентов отчета, наиболее интересным представляется событие OnBeforePrint, вызываемое непосредственно перед выводом отчета на печать (или экспортом его в один из форматов). Рассмотрим пример такого обработчика (рис.5). В качестве языка программирования выбран PascalScript.

Рисунок 5. Обработчик события OnBeforePrint

Перед выводом отчета на печать этот обработчик выводит диалоговое окно с предложение ввести примечания к отчету. Окно выводится для каждой страницы и введенные пользователем примечания отображаются в верхнем колонтитуле страницы. Работает все это очень просто. Функция InputQuery выводит диалоговое окно (рис. 6)

Рисунок 6. Диалоговое окно для ввода примечаний

Введенный текст сохраняется в строке S. Объект Memo2 соответствует верхнему колонтитулу страниц отчета, который и заполняется пользовательским вводом. Хотя мы программируем внутри приложения FastReport Designer, среда знакома и удобна для программистов Delphi (или C++, или Java, или Basic, в зависимости от выбора интерпретатора). Фактически, благодаря встроенным средствам программирования, вся логика обработки вывода данных может быть сосредоточена в FastReport Designer, так что в ситуациях, когда пользователям системы требуется только получение и анализ данных БД, FastReport Designer может выполнять все необходимые функции приложения БД.

Недостатки

Хотя в общем и целом FastReport Designer производит хорошее впечатление, нельзя не отметить некоторые недостатки, касающиеся, в основном, интерфейса. Прежде всего, несколько затруднено управление окнами. В строке меню нет пункта Window, хотя при таком количестве рабочих окон он должен присутствовать обязательно. Пункт меню Help не содержит справочной системы. Документация доступна отдельно на сайте компании. Встроенный движок SQL не всегда справляется с генерацией запросов, так что их иногда приходится редактировать вручную.

Заключение

Подводя итоги, можно сказать, что FastReport Studio представляет собой качественный продукт, отвечающий всем требованиям, предъявляемым к современным генераторам отчетов, и способный потеснить своих конкурентов – Crystal Reports и Rave Reports. FastReport Designer может играть роль и визуального редактора отчетов, и самостоятельного приложения БД. При этом дизайнер предоставляет конечному пользователю не только возможность управления процессом построения отчёта, но и широкие возможности обработки данных. Не зря читатели журнала Delphi Informant наградили в 2004 году продукцию компании Fast Reports призом «продукт года». Гдавное же заключается в том, что FastReport Studio действительно оправдывает свое название – отчеты создаются быстро.

Автор статьи: Андрей Боровский
Первоисточник: СОФТ@Mail.Ru

Comments are closed.