Понятие «генератор отчетов» появилось относительно недавно.
Давайте определимся что же это такое. Генератор отчетов – это программа позволяющая на основе набора данных создавать готовые к демонстрации документы. Первые генераторы отчетов были примитивны и позволяли создавать документы в лишь самых распространенных форматах. Они были довольно медленными при построении отчетов с большим объемом данных, интерфейс создания шаблона отчета оставлял желать лучшего. Поэтому многие разработчики сами создавали отчеты в коде своего приложения. Это отнимало много времени и сил.
Однако, флагманы разработки генераторов отчетов довольно быстро учли недостатки первых версий и превратили свои продукты в действительно удобные и быстрые программы. Сейчас уже ни у кого не возникает желания генерировать отчеты Excel вручную.
Принцип работы с генератором отчетов довольно прост. Обычно в состав программы входит дизайнер отчетов, который позволяет создавать шаблон. Вы конструируете свой документ расставляя текстовые поля, таблицы и рисунки. При построении отчета, генератор берет шаблон и наполняет его данными. При этом, вы можете получить множество страниц, если данных много. Затем вы делаете экспорт отчета в желаемый формат: doc, pdf, xls и др. Вот и все.
Большинство процессов можно автоматизировать, например, формировать отчет по расписанию, автоматически экспортировать его в нужный формат и отправлять по email. Но без участия человека все же не обойтись, нужно создать шаблон отчета. Хотя и тут к вам на помощь приходят различные «мастера» по созданию отчетов. Что превращает создание простого отчета в несколько кликов мышью.
Давайте же рассмотрим одного из ярких представителей на рынке генераторов отчетов FastReport.Net. Как вы уже поняли .Net означает, что этот генератор отчетов работает именно с этим фреймворком. Что в свою очередь позволяет нам использовать его в любом .Net приложении.
Немного подробнее о структуре отчета в FastReport.Net:
1) Отчет состоит из страниц. По умолчанию в отчете одна страница, но вы можете добавлять сколь угодно много новых. Это именно страницы шаблонов, а не отображаемые при построении страницы. Каждая страница шаблона, при наполнении данными может быть представлена множеством страниц построенного отчета, в зависимости от количества данных;
2) Каждая страница отчета включает в себя блоки размещения данных – бэнды. Бэнды различаются по своему назначению: заголовочные бэнды, бэнды-данные, подвальные бэнды.
3) Объекты отчета – это различные элементы управления, такие как текстовое поле, checkbox, рисунок, таблица, матрица, график и д.р. В основном они используются для отображения данных, но бывают и чисто декоративные – фигуры.
Таким образом мы получаем необходимую цепочку для отображения данных в отчете: страница – бэнд – объект. Это значит, что в отчете должно быть хотя бы по одному из перечисленных элементов, для отображения информации.
Если со страницами все более-менее понятно, то бэнды вызовут много вопросов у пользователей-новичков. Поэтому я расскажу о них чуть поднобнее.
Они имеют разное поведение при построении отчета. Первый отображается лишь один раз в начале отчета. Второй – на каждой странице построенного отчета. Третий – также, как и первый, только в начале отчета. Четвертый – вверху каждой колонки. Пятый – при отображении каждой группы.
По аналоги с заголовочными бэндами выводятся: подвал отчета – в конце отчета, подвал страницы – в конце каждой страницы, подвал данных – сразу после бэнда «Данные», подвал колонки – после каждой колонки, подвал группы – в конце каждой группы.
Как я говорил раньше, объекты размещаются на бэндах и в большинстве своем предназначены для вывода информации.
Теперь пара слов о каждом объекте. Основным объектом вывода данных является «Текст». В текстовом объекте можно писать любую информацию, а для отображения поля из источника нужно использовать прямые скобки []. Заключаем в скобки поле [Table.Field]. Такое выражение будет заменено данными из базы.
Такие объекты как Матрица (Сводная таблица) и Таблица основываются на данных из базы.
Как видите, таблица имеет текстовые данные, которые выводятся с помощью объекта «Текст», а также рисунки, которые выводятся с помощью объекта «Рисунок». Из этого можно сделать заключение, что некоторые объекты могут включать в себя другие.
Рисунки могут быть загружены из локальной папки или непосредственно из базы данных, как в показанном выше примере.
Диаграмма – строится на основе данных из БД (есть возможность задать данные вручную). Задаются значения по X и Y координатной оси:
Предусмотрено множество видов диаграмм, самая распространенная – гистограмма, показанная выше.
Вложенный отчет – по сути еще один отчет, который можно разместить в нужном месте текущего отчета.
Форматированный текст – текстовый объект, формат отображения которого вы задаете на этапе создания в редакторе. Конечно, вы можете настроить любой тестовый объект и после создания.
Индекс– специально отформатированный объект для отображения почтового индекса подобно почтовым конвертам:
Штрих код – имеет широкую номенклатуру штрих кодов различных стандартов. Строится как на основе вручную введенных данных, так и по данным из БД:
Флажок – обычный СheckBox. Является индикатором для полей данных с типом Boolean.
Карта – позволяет вставлять в отчет интерактивные карты. Можно перемещаться по карте, уменьшать и приближать, подобно google картам.
Искрографик и индикатор – разновидности диаграмм.
Фигуры – носят декоративный характер. С помощью них мы можем организовать простейшую векторную графику в отчете.
Текст в ячейках – стилизация вывода текста посимвольно в каждой ячейке. Обычно используется в анкетах.
На этом, пожалуй, все. Надеюсь, эта небольшая вводная информация даст вам некоторое понимание структуры отчетов в FastReport.
В следующей статье я рассмотрю бэнды более детально. Так как это наиболее сложный для понимания механизм в отчетах FastReport. Мы еще раз поговорим о назначении каждого из бэндов и особенностях отображения при построении. Имея эти базовые знания, вы сможете проектировать отчеты любой сложности.