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

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 FastReport Отчет .NET FastReport Отчет
8 сентября 2026

Ответы на популярные вопросы о формате FP3

Разбираем 11 частых вопросов о формате FP3: что это за файлы, чем отличаются от FR3, какие программы их открывают и как конвертировать в PDF.
4 сентября 2026

Как из FastReport .NET экспортировать отчет в DXF

Рассмотрим способы экспорта отчета в формат DXF, а также посмотрим, как выглядит полученный результат после открытия файла в CAD-приложении.
30 июля 2026

Как из FastReport .NET экспортировать отчет в PostScript

В этой статье мы на простом примере рассмотрим экспорт отчета FastReport .NET в формат PostScript, разобрав настройку параметров и программную реализацию.

Не является публичной офертой
© 1998-2026 ООО «Быстрые отчеты»