Типы отчетов в FastReport

30.08.2017

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

Приведу список типов отчетов:

1)      Простой список;

2)      Главный-Подчиненный;

3)      Главный-Главный;

4)      Отчет с группировкой;

5)      Отчет с этикеткой;

6)      Многоколончатый отчет;

7)      Отчет «Буклет»;

8)      Вложенный отчет;

9)      Наследованный отчет;

10)   Отчет с диаграммой;

11)   Отчет с картами;

12)   Матричный отчет;

13)   Отчет с диалоговой формой;

14)   Отчет со скриптом;

15)   Интерактивный отчет.

Но обо всем по порядку. Итак, первый тип отчета:

1)      Простой список. Просто вывод данных из таблицы БД в одном списке подобно странице в Excel. Это может быть просто одна таблица, или данные из связанных по ключу таблиц, но выводятся они в одном бэнде «Данные». Например, вот так:

 

Или так:

 

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

Такой тип отчета наиболее распространен ввиду своей простоты и быстроты создания.

 

2)      Когда нам нужно выводить данные из разных таблиц, связанных по ключу мы можем использовать тип: Главный-Подчиненный или Master-Detail. В данном случае данные для каждой из таблиц выводятся в разных бэндах «Данные», однако, есть главный бэнд и есть подчиненный. Это означает, что для каждой записи в главном бэнде будут выведены все записи, соответствующие ключу в подчиненном бэнде. Таким способом удобно отображать, например, категории товаров со списками товаров:

 

3)      Главный – Главный. В предыдущем примере мы использовали два бэнда «Данные». Один из которых был зависим от другого. В отчете типа «Главный – Главный» (Master - Master) тоже используется несколько бэндов «Данные», но они не связаны и не зависят друг от друга. По сути это несколько отдельных списков, выводимые последовательно.

4)      Отчет с группировкой. Из названия понятно, что в данном случае используется группировка данных по какому-либо условию. Например, группировка по первой букве названия товара:

 

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

 

 

5)      Отчет «Этикетка». Позволяет использовать шаблоны этикеток. Есть набор встроенных шаблонов этикеток различных производителей:

 

Но вы можете сделать свой шаблон, в котором укажете размеры этикетки, количество этикеток на листе:

 

Таким образом вы можете создавать этикетки нужных размеров. Например, такие:

 

 

6)      Многоколончатый отчет. Этот тип отчета можно сочетать с любым другим. Суть его в разбиении данных на колонки, на подобие газетного листа. Вы можете задать количество колонок в настройках страницы. Другой вариант настроить количество колонок в свойствах бэнда «Данные».

 

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

7)      Отчет типа «Буклет». Суть этого типа отчета заключается в придании отчету некоторой презентабельности, а именно – титульная страница, оглавление, заключение. Такой буклет можно распечатать и распространять в бумажном виде как законченный документ. Достигается это добавлением новых страниц в отчет. Вы добавляете нужные страницы, а затем выстраиваете в нужном порядке перетаскивая за вкладки страниц слева внизу дизайнера.

 

Примерно так выглядит многостраничный отчет типа «Буклет»:

 

 

8)      Вложенный отчет. Из названия понятно, что это отчет, который можно вложить в другой. То есть вы помещаете объект «Вложенный отчет» в желаемое место вашего отчета. При этом создается новая страница отчета, на которой вы конструируете вложенный отчет.

При построении отчета, в том месте, где размещен объект «Вложенный отчет» будет выведен отчет, сконструированный вами на другой странице, далее продолжится вывод элементов главного отчета.

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

Вот пример вложенного отчета:

 

Обратите внимание на белую область. Эта таблица выводится из вложенного отчета. Посмотрите на шаблон отчета:

 

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

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

Когда это может быть полезно? Например, вы создаете серию отчетов для какого-либо предприятия. Отчет содержит шапку с названием фирмы и другими данными – это шаблон, принятый для всех документов в предприятии. Если адрес фирмы или телефон, или любой другой параметр изменится, вам потребуется сделать всего одну правку в базовом шаблоне, а не в каждом из созданных для предприятия отчете. Согласитесь, удобно?

Как сделать базовый шаблон? Просто создаете новый отчет и оформляете в стиле шаблона предприятия.

Как сделать наследованный отчет? Создаете новый отчет и выбираете Inherited report (Наследованный отчет):

 

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

 

10)  Отчет с диаграммой. Возможно не стоит рассматривать этот тип отчета как отдельный, ведь вы можете встроить диаграмму в любой из рассмотренных ранее типов. Но уделить внимание диаграммам все равно нужно. Чаще всего диаграммы все-таки размещают в отдельных отчетах, или на отдельных страницах.

FastReport предлагает внушительный набор видов диаграмм:

 

 Диаграммы могут быть трехмерными, просто нужно отметить параметр при создании серии.

11)  Отчет с картой. Подобно диаграммам, вы можете встраивать в свои отчеты карты. Вы загружаете файл с картой в объект Map и можете просматривать ее в отчете используя мышь подобно Google картам:

 

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

12)   Матричный отчет (сводный). Возможно вы сталкивались со сводными (перекрестными) таблицами в Excel. Но все же напомню. Перекрестная таблица — это таблица с двумя входами, один из них столбцы, второй - строки. На пересечении столбца и строки ячейка с данными.

Самый простой пример – таблица умножения:

 

Типичная матрица. Таким же способом можно скомпоновать данные, например, по продажам:

 

Мы выводим суммы продаж по каждому сотруднику по годам. В таком формате очень удобно и быстро анализировать большие данные. Взгляните как выглядели бы эти же данные в простом списке:

 

Согласитесь, не очень-то удобно анализировать такой список. А как выводить сумму для каждого сотрудника? Нужно делать группировку. Все это вызывает неудобства, затраты по времени для анализа.

Таким образом, матрица дает возможность структурировать и суммировать большие объемы данных. Некое упрощение OLAP.

 

13)   Отчет со скриптом. Как вы уже поняли, отчеты в FastReport имеют встроенный скрипт, который позволяет полностью управлять объектами отчета в коде. Каждый объект, как полагается, помимо свойств имеет и события. Например, используя событие BeforePrint можно преобразовать данные перед отображением, а по событию AfterPrint – автоматически отправлять отчет по email:

 

FastReport.Net позволяет писать скрипт на двух языках C# и VB.Net.

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

Таким образом, скрипт позволяет нам:

- Управлять отображением объектов отчета (цвет, расположение, видимость и д.р);

- Преобразовывать данные – производить сложные вычисления или преобразования типов данных;

- Управлять формированием некоторых объектов, таких как матрица или таблица (добавлять/удалять колонки и строки).

Для примера, вот такой простой обработчик события BeforePrint для текстовогообъекта позволяет смещать его при каждом последующем отображении:

1
2
3
4
5
private void Text1_BeforePrint(object sender, EventArgs e)
 {
 Text1.Left = left;
 left += 30;
 }

 

 

 

14)   Отчет с диалоговой формой. Отчеты этого типа содержат одну или несколько диалоговых форм, которые отображаются перед построением отчета. Таким образом вы можете задвать какие-либо данные на форме, управлять поведением отчета.

Например, можно выбрать данные для фильтрации:

 

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

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

15)  Интерактивный отчет. Это отчет, который позволяет пользователю помимо просмотра информации, взаимодействовать с ним. Например, нажатием на какой-либо элемент перемещаться в заданное место отчета, или строить детальный отчет на другой странице.

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

Вот, например, список категорий с гиперссылками:

Нажимаем на гиперссылку:

И получаем детализирующий отчет для этой категории.

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

20 ноября 2024

Локализация и смена языков в FastReport VCL

FastReport VCL поддерживает 40 языков для локализации интерфейса и позволяет изменять язык на лету через меню или код, без перекомпиляции.
1 ноября 2024

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.