Several reports in one viewer

Stimulsoft Reports.JS discussion
Post Reply
Alina
Posts: 2
Joined: Thu Apr 11, 2024 7:23 am

Several reports in one viewer

Post by Alina »

I have several reports. How can I merge them? Show one after another in one viewer.
Lech Kulikowski
Posts: 6291
Joined: Tue Mar 20, 2018 5:34 am

Re: Several reports in one viewer

Post by Lech Kulikowski »

Hello,

Please check the following topic:
viewtopic.php?f=27&t=56842

Thank you.
Alina
Posts: 2
Joined: Thu Apr 11, 2024 7:23 am

Re: Several reports in one viewer

Post by Alina »

I use this code:

const viewer = new window.Stimulsoft.Viewer.StiViewer(
options,
"StiViewer",
false
);

const report1 = new Stimulsoft.Report.StiReport();
report1.load(this.jsonReport);
const report2 = new Stimulsoft.Report.StiReport();
report2.load(this.jsonReport);
const reportMerge = new Stimulsoft.Report.StiReport();
reportMerge.reportUnit = report1.reportUnit;
reportMerge.render(); //The 'render' method is obsolete. Please use the 'renderAsync' method instead.//When I use renderAsync, nothing is rendered. Blank sheet
reportMerge.renderedPages.clear();
report1.renderAsync(function () {
for (var index = 0; index < report1.renderedPages.count; ++index) {
reportMerge.renderedPages.add(
report1.renderedPages.getByIndex(index)
);
}
});
report2.renderAsync(function () {
for (var index = 0; index < report2.renderedPages.count; ++index) {
reportMerge.renderedPages.add(
report2.renderedPages.getByIndex(index)
);
}
});
viewer.report = reportMerge;
viewer.renderHtml("viewerCont");

Please tell me what I'm doing wrong
Lech Kulikowski
Posts: 6291
Joined: Tue Mar 20, 2018 5:34 am

Re: Several reports in one viewer

Post by Lech Kulikowski »

Hello,

Please check the following code:
var report1 = new Stimulsoft.Report.StiReport();
report1.loadFile("../reports/1.mrt");
var report2 = new Stimulsoft.Report.StiReport();
report2.loadFile("../reports/2.mrt");
var reportMerge = new Stimulsoft.Report.StiReport();
reportMerge.reportUnit = report1.reportUnit;
reportMerge.renderAsync(function () {

reportMerge.renderedPages.clear();
report1.renderAsync(function () {
for (var index = 0; index < report1.renderedPages.count; ++index) {
reportMerge.renderedPages.add(report1.renderedPages.getByIndex(index));
}
});

report2.renderAsync(function () {
for (var index = 0; index < report2.renderedPages.count; ++index) {
reportMerge.renderedPages.add(report2.renderedPages.getByIndex(index));
}
});

});
viewer.report = reportMerge;

Thank you.
Post Reply