FastReport: How to combine multiple reports into one

FireWind

Свой
Регистрация
2 Дек 2005
Сообщения
1,957
Реакции
1,199
Credits
4,009
FastReport : How to combine multiple reports into one
July 13, 2020 by Dmitriy Fedyashov
[SHOWTOGROUPS=4,20]
Many report developers had situations when they needed to add a page that had already been implemented in another report. And you had to rework an existing report - add a new page, data sources. Not everyone knows that you can simply merge reports when they are displayed.

The user of Stimulsoft report generator also faced the problem of combining reports:

Для просмотра ссылки Войди или Зарегистрируйся

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.

1594648433889.png

Fortunately, the user has found a standard way to combine reports. FastReport.net users would probably be interested to know how to do this in their report generator.

Let's look at the code:
Код:
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();
As you can see, we sequentially load three different reports into the same report object.

At the same time, after each loading of the report, we need to build the report using the Prepare() method. But as you have noticed, for the second and third reports, we used this method with the Prepare(true) parameter. This parameter indicates that you should add pages to the existing ones, not clear them before adding them. Now, let's run the application and take a look at the report:

1594648498833.png

As we can see, all three reports are drawn up one after the other. Moreover, with this method of combining reports, page numbering is through. For example, the last report displays page number 4 at the bottom:

1594648507766.png


In this way, you can merge reports unnoticed by the user. Depending on the required content, you can create different assemblies from the reports. There is no need to create large and complex multi-page reports. You can instruct different people to create several simple reports and at the end, when displayed, you can combine them. Yes, in this case you will have several templates, but the prepared report file in fpx format will be one.
[/SHOWTOGROUPS]