You are not logged in.
Pages: 1
Hello!
I'm looking for way to reduce performance impact. I think, I could use report, based on extracted from another report Id's. Or report, which using another report or query with parameters as a filter.
Is there any use cases from the box, or, probably, some ways to do it using groovy script?
I'm speaking about using it in dynamic lists. And datasource parameter does not look like solution. Because its just creates list to select from, and does not allow to execute separate queries based on the selected parameters.
Thank you
Offline
Добрый день Asmirnov,
to be honest, we do not fully understand the use case you are describing. What exactly is the performance issue ? Most of the trouble can be resolved by processing data overnight and supporting easy and fast accessible tables for end user reporting. Maybe your database parameters are slow, it helps to create specific paramater tables.
Thus said we are very clear about not wanting dynamic lists based on dynamic lists. You can always create a script datasource that allows you to become very specific about your needs.
Anyway pls. tell us more about your problem.
wbr jan
Offline
Thank you for reply
To be more specific. I have to make cross-MART reports, but data itself been taken from only MART, others MARTS used as additional filter.
For example, there is a functionality for Oracle BI, allows to filter report using another report (https://www.uc.edu/content/dam/uc/provo … alysis.pdf)
Can you please provide additional information about script datasources? My gut feeling tells that it might be a solution in my case)
Thank you!
Offline
Hi asmirnov,
it sounds as script datasources should help you. You can include data from any source into a format that reportserver understands.
you can find information on script datasources including an example here: https://reportserver.net/en/guides/scri … tasources/
Regards,
Eduardo
Offline
Hi Eduardo
I think, I can use script datasources to extract data from filter, but firstly I have to prepare this filtering data from other reports. I did not find an answer for that challenge there)
Thank you,
Alexey
Offline
Hi Alexey,
you can also execute other reports from within a script, in this case, from within a script datasource. Then you can extract the data of these other reports and use it as you need. It is especially useful if you use dynamic reports because the data is easy to extract.
Here is a simple example where you execute the report with id 722609 and get a CompiledReport as an answer. In case of dynamic lists with a RS_TABLE you can cast the CompiledReport to a net.datenwerke.rs.base.service.reportengines.table.output.object.RSTableModel, where you can call getData() for getting a list of the rows in your table.
import net.datenwerke.rs.core.service.reportmanager.ReportExecutorService;
import net.datenwerke.rs.core.service.reportmanager.ReportService;
import net.datenwerke.rs.core.service.reportmanager.engine.CompiledReport;
import net.datenwerke.rs.core.service.reportmanager.entities.reports.Report;
import net.datenwerke.rs.core.service.reportmanager.engine.config.ReportExecutionConfig;
reportService = GLOBALS.getInstance(ReportService.class);
reportExec = GLOBALS.getInstance(ReportExecutorService.class);
Report report = reportService.getReportById(722609);
CompiledReport reportCompiled = reportExec.execute(report, "RS_TABLE", ReportExecutionConfig.EMPTY_CONFIG);
Regards,
Eduardo
Offline
Pages: 1