1 сравнение генераторов отчётов SSRS и FastReport .NET

18.11.2017

Электронная и печатная отчетность применяется во многих сферах нашей жизнедеятельности. Вы можете представить бухгалтерию без годового отчета? Или транспортную компанию без накладных? Так или иначе отчеты имеют огромное значение в производстве и бизнесе. Именно поэтому программы – генераторы отчетов так же важны, как и СУБД.  Но, также, как и разные СУБД, разные генераторы отчетов имеют свои сильные и слабые стороны.

Давайте рассмотрим мы два ярких представителя, которые достаточно давно обосновались на рынке «софта»:

  • Первый из них – SQL Server Reporting Services (SSRS). Продукт от мирового гиганта Microsoft. Создавался специально как надстройка над СУБД SQL Server. Этот генератор отчетов очень популярен среди разработчиков TSQL в первую очередь потому, что входит в комплект поставки СУБД MS SQL Server. Главная особенность этого генератора отчетов – это серверная служба, которая позволяет администрировать и просматривать отчеты через веб интерфейс. Для редактирования отчетов требуется десктоп приложение – дизайнер отчетов.
  • Второй сегодняшний кандидат – FastReport .NET. Это продукт российских разработчиков с давней историей. Но сейчас не об этом. Генератор FastReport .NET работает в связке в Microsoft Visual Studio и основан на фреймворке .NET. При инсталляции программы, ее компоненты добавляются в палитру VS. Так что вы используете FastReport в своих приложениях размещая компоненты на форме или подключая библиотеки в коде. Также, как и SSRS, он имеет отдельно запускаемый дизайнер отчетов, однако вы можете встроить дизайнер в свое приложение с помощью компонента ReportDesigner.

В противовес SSRS я намеренно взял не столь известный FastReport .NET. Интересно сравнить продукт от лидера софтверного рынка и от небольшой компании. Но не будем забегать вперед, обо всем по порядку.

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

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

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

 

Все достаточно понятно и лаконично, выполнено в стиле MS Office 2007. Надо сказать, очень удачная идея с панелями инструментов сгруппированными по назначению на отдельных вкладках. Сейчас этот стиль перенимают многие. Люди, работающие с MS Office быстро освоят такой интерфейс. Слева - данные отчета, в центре – рабочая область. Создавать отчеты в таком дизайнере очень просто.

А теперь посмотрим на дизайнер FastReport .NET:

Видите, сходство с предыдущим скриншотом? Здесь тоже применяется верхняя панель инструментов по типу MS Office 2007. Здесь слева панель компонентов, справа - дерево данных, в центре – рабочая область. Все также просто и понятно. Однако есть одна особенность в архитектуре шаблона отчета – бэнды. Это контейнеры, разграничивающие информацию по назначению. По началу освоения FR.Net это потребует времени на понимание, однако преимущества данного подхода нивелируют эти затраты.

Оба дизайнера понятны и удобны в работе, юзабилити не вызывает нареканий.

Функциональные возможности для создания отчетов

Теперь рассмотрим основные возможности генераторов в создании отчетов.

В таблице ниже я приведу функциональные возможности:

Функция

SSRS

FR.Net

Многостраничный отчет

 

Диалоговые формы

 

Встроенный скрипт отчета

Гиперссылки

Обработчики событий

 

Выражения

Поддержка текста справа налево

Локализация пользовательского интерфейса

Безразмерная страница отчета

 

Интерактивные отчеты

Модификация уже построенного отчета

 

 Немного подробнее о функциях:

Многостраничный отчет. Как правило мы создаем шаблон отчета на странице, затем, при построении этот шаблон наполняется данными. Если данные не умещаются на одной странице, то создается новая и так далее. Так вот, многостраничный отчет — это совсем другое.

Имеется в виду несколько страниц с разными шаблонами. Например, первая страница титульная, вторая – оглавление, третья – контент. Таким образом отчет состоит из трех страниц, каждая из которых наполняется своими данными. Благодаря этой возможности можно создавать полноценные документы типа буклет.

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

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

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

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

Поддержка текста справа налево – актуально для арабских языков, где текст пишется справа налево. Такая функция должна быть в каждом «уважающем себя» генераторе отчетов.

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

Безразмерная страница отчета – возможность задавать бесконечную ширину и высоту страницы отчета. Таким образом вы можете выводить большие таблицы и матрицы без разбивки по страницам. Это может быть удобно в веб отчетах или просто если вы не планируете выводить отчет на печать.

Интерактивные отчеты – отчеты, которые откликаются на действия пользователя. Это могут быть гиперссылки, закладки, разворачивающиеся списки, всплывающие сообщения.

Модификация уже построенного отчета – возможность изменять отчет без перестроения. Это реализуется с помощью скрипта.

Из приведенной таблицы видно, что по некоторым параметрам FastReport .NET обходит SSRS. Продукт от Microsoft не позволяет создавать отчеты с несколькими шаблонами-страницами. Также ему недоступна безразмерная страница, отчет всегда выводится на страницах фиксированного размера. Опять же модифицировать построенный отчет не получится, хоть это и достаточно экзотическая потребность.

Отдельно хочу упомянуть диалоговые формы. В SSRS эта форма выводится сверху отчета, а в FastReport .NET - как отдельная форма перед построением отчета. Причем из этой формы можно вызвать другую, что позволяет наделить отчет большей логикой.

По итогам сравнения функциональных возможности для создания отчетов признаем преимущество за FastReport. Возможно сказывается больший опыт компании в разработке генераторов отчетов, ведь свой первый генератор она создала в начале 2000х, а Microsoft в 2004ом.

7 ноября 2022

Импорт отчетов из JasperReports в FastReport .NET

В FastReport .NET был добавлен плагин импорта отчётов из JasperReports, который автоматически конвертирует документы в формат .frx
6 июля 2022

Как импортировать отчет из StimulSoft в FastReport .NET

В FastReport .NET был добавлен плагин импорта отчётов из StimulSoft, который автоматически преобразует ваши документы в формат .frx.
25 мая 2022

Создание отчетов с PostgreSQL в приложении .NET 5 под Debian 10

Пример отчёта с кодом на основе библиотеки FastReport.Core с использованием SQL баз данных на операционной системе Debian 10.