FastReport. Краткий обзор возможностей

Источник: delphi2010
Александр Божко

На прошлой неделе я стал обладателем Enterprise редакции FastReport. И в сегодняшнем посте хочу немного рассказать о возможностях старших редакций флагмана мирового отчетостроения.

Прежде всего, хочу отметить, что продукт великолепно документирован. Особенно приятно, что имеется  документация и на русском  языке. Три объемных руководства (пользователя, программиста и разработчика) дополнены обширным набором примеров, который обеспечивает "лёгкое вхождение" в продукт.

Для многих программистов FastReport стал основным средством построения отчетов в Delphi еще до появления Embarcadero редакции. Редакция, вошедшая в состав RAD Studio, конечно имеет свои ограничения, но, тем не менее, предоставляет весь тот базовый набор функций, который был у предшественников. Я имею ввиду Rave Report и Quick Report, которые были "родными" для более ранних версий Delphi и C++ Builder. Впрочем, к моменту выхода Delphi XE2 мало кто пользовался этими средствами построения отчетов, по крайней мере, для новых проектов.

В свое время  я, как и многие, оказался непосредственно вовлечен в процесс перевода старого проекта на новую систему построения отчетов. Правда, на тот момент я использовал Basic Edition. Собственно, я уже писал о том, как можно "малой кровью" портировать отчет с Rave на FastReport. К слову, подобным образом поддерживается переход и с других устаревших систем построения отчетов, в частности  Quick Reports и Report Builder.

В этом обзоре я хочу рассказать, что же не вошло в Embarcadero редакцию FastReport.

Итак, кроме редакции, поставляемой в комплекте с Delphi/C++ Builder существует еще четыре варианта комплектации продукта - Basic, Standard, Professional и Enterpriseю Сразу приведу ссылку на сводную таблицу функционала в зависимости от редакции и немного прокомментирую  представленные в ней возможности.

Экспорт отчетов

Как видно из таблицы, в Base редакции продукта значительно расширен перечень форматов экспорта.  В принципе, в большинстве случаев достаточно и того, что есть в Embarcadero Edition. Однако, бывают и исключения. По собственному опыту скажу, что иногда пользователи хотят видеть отчет в определенном, зачастую, довольно диковинном формате. Обусловлено это может быть разными причинами, но факт остается фактом. Чем больше форматов экспорта поддерживается, тем лучше.

Список поддерживаемых форматов в Embarcadero редакции:

  • PDF
  • RTF
  • HTML
  • TXT
  • JPEG, BMP, TIFF, GIF, EMF

    в Basic редакции расширен следующими форматами:

  • CSVODS, ODT
  • Excel Binary
  • Excel XML
  • Email
  • DBF

Наличие исходников

Я предпочитаю их иметь. Вполне возможно, вам их никогда не придется даже открывать. Но ситуации, когда они могут понадобиться, все же теоритически возможны. Не так давно мне привносить изменения  в  работу Rave Report. И я скажу, что это достаточно сложно было бы сделать в неподдерживаемом наборе компонентов без исходного кода. К счастью, в свое время наша компания купила полную версию Rave, и, имея исходники старой версии, мне что-то удалось сделать.

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

Run-time дизайнер отчетов для конечных пользователей.

Безусловно, это тот функционал, который может вывести приложение на качественно новый уровень. Вне зависимости от того, корпоративное это приложение или небольшая shareware программа. Фактически, здесь появляется возможность  изменять отчет без перекомпиляции проекта. Это может стать удобным как для конечных пользователей, так и для самих разработчиков. Соответственно, созданием  или  модификацией отчетов могут заниматься не только непосредственно программисты , но и служба поддержки, и даже конечные пользователи. Помимо того, что приложения приобретают дополнительную гибкость, этот функционал может существенно снизить цену разработки (как здесь не вспомнить тезис о том, что средняя цена строчки программного кода составляет $28).  Доступно начиная со Standart редакции.

Внутренние датасеты.

Естественно, при построении пользовательских отчетов требуется каким-то образом обеспечивать доступ к данным. И если речь идет о run-time, то доступ к датасетам программы не всегда позволяет получить именно те данные, которые необходимы для построения того или инного отчета. Внутренние датасеты  дают большую гибкость, позволяя строить произвольные запросы. Кроме того, в некоторых случаях они расширяют функционал "основных" датасетов.  Также доступно начиная со Standart редакции.

Поддержка Interbase Express (IBX), IBOjects, ActiveX Data Objects (ADO) и dbExpress

Замечательно то, что внутренние датасеты могут быть организованы с помощью той же технологии, что и основные, используемые в приложении. В скором времени ожидается и поддержка FireDAC. Но еще более замечательна возможность написания собственных внутренних датасетов. Я не могу точно сказать, насколько трудоемка данная операция, но судя по документации, все не очень сложно. По сути, какое бы не использовалось решение для доступа к данным, старшие версии FastReport будут с ними работать.
В качестве ремарки…

Почему бы в качестве эксперимента не попробовать сделать поддержку UniDAC?

Visual SQL builder

Совершенно логично, предоставить пользователю, у которого есть возможность самостоятельно создавать/видоизменять отчет, удобный и понятный интерфейс для обработки данных. Визуально Visual SQL builder похож на редактор запросов в MS Access и не должен вызывать у продвинутых пользователей особых затруднений.

Возможность создания интерактивных отчетов.

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

Скрипты

Внутренний скриптовый движок  поддерживает PascalScriptC++ScriptJSCript,BasicScript. Очень часто это бывает удобно тогда, когда  нужно встроить в отчет некоторую логику. Например, настроить размеры элементов отчета в зависимости от размера страницы и т.д.

Компоненты для веб-приложений

Официальное описание гласит следующее:

Редакция Entreprise позволяет вам встроить в ваше приложение полноценный веб-сервер отчётов и получать документы в Web через любой браузер как в Internet так и в Intranet, как по открытым, так и по защищённым каналам! Вы можете сохранять отчёты в облачных сервисах и открывать отчёты из облаков!

Стоит ли говорить, насколько сейчас востребованы  системы подобного рода в корпоративном секторе?  И значимость инструмента, позволяющего создавать подобные решения сложно переоценить. Вполне вероятно, что я посвящу отдельный материал разработке веб-сервер отчётов с помощью FastReport.

Естественно, все вышеперечисленное является всего лишь поверхностным описанием тех возможностей, которые предоставляет FastReport. За рамками этого обзора остался FastReport для FireMonkey.

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

Хочу поблагодарить  компанию FastReports и лично Михаила Филиппенко за поддержку блог-сообщества и предоставления лицензии Enterprise.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=32902