Как объединить несколько отчетов в один

13.07.2020

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

С проблемой объединения отчетов столкнулся и пользователь генератора отчетов Stimulsoft:

https://stackoverflow.com/questions/43569668/stimulsoft-view-multiple-reports-inside-stiviewer

I am using Stimulsoft libraries to create reports (StiReport control) and then showing it inside a StiViewer control. the problem is when i assign multiple reports to the viewer, it does not refresh or display the contents but it works just fine if i only set 1 report to the viewer.

User issue

К счастью, пользователь нашел штатный способ объединения отчетов. Пользователям FastReport.net наверняка было бы интересно узнать, как сделать это в своем генераторе отчетов.

Давайте рассмотрим код:

1
2
3
4
5
6
7
8
9
10
11
Report report = new Report();
 DataSet data = new DataSet();
 data.ReadXml("K:/My documents/nwind.xml");
 report.RegisterData(data);
 report.Load("K:/My documents/Master-Detail.frx");
 report.Prepare();
 report.Load("K:/My documents/Highlight.frx");
 report.Prepare(true);
 report.Load("K:/My documents/Barcode.frx");
 report.Prepare(true);
 report.ShowPrepared();

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

При этом, после каждой загрузки отчета, нужно выполнить построение отчета методом Prepare(). Но, как вы заметили, для второго и третьего отчета мы использовали этот метод с параметром Prepare(true). Этот параметр говорит о том, что при построении нужно добавлять страницы к существующим, а не очищать перед добавлением. А теперь, запустим приложение и посмотрим на отчет:Combined reports

Как мы видим – все три отчета выведены друг за другом. Более, того, при таком способе объединения отчетов нумерация страниц сквозная. Например, в последнем отчете выводится номер страницы 4 внизу:

Numbering range works for combined reports

 

Таким образом, вы можете объединять отчеты незаметно для пользователя. В зависимости от требуемого контента можно создавать разные сборки из отчетов. Получается нет необходимости создавать большие и сложные многостраничные отчеты. Можно поручить разным людям создание нескольких простых отчетов и в конце, при отображении, объединить их. Да, при этом у вас будет несколько шаблонов, но файл подготовленного отчета в формате fpx будет один.

.NET .NET FastReport FastReport Отчет Отчет
8 апреля 2025

Как настроить подключение к Apache Ignite в FastReport .NET

В этой статье мы рассмотрим, как настроить подключение к Apache Ignite в FastReport .NET. Вы узнаете, какие шаги необходимо выполнить для подключения плагина через код и дизайнер отчетов.
8 апреля 2025

Конвертер из формата Microsoft Word (.docx) в файл для FastReport .NET (.frx)

Конвертер из формата Microsoft Word (.docx) в файл для FastReport .NET (.frx): описание и инструкция по использованию инструмента.
25 марта 2025

Как объединить несколько отчетов в один из FastReport .NET

FastReport .NET — это мощный инструмент для создания и управления отчётами. В данной статье мы рассмотрим, как объединить несколько отчётов в один в FastReport .NET.