2
votes

Normally in SSRS reporting, to create a report we define a datasource, then we define query, select layout of report and other properties. Then at run time Reporting services fire the query provided at design time and fetch dataset/datatable and bind the data with report structure/grid.

My rdl reports are already there hosted on server, at run time I want to substitute data fetched by reporting engine in report with my data. Due to some constraints I cannot allow reporting engine to query my database.

Now is it possible that I fetch the data by myself from any data source, create dataset/datatable of values and pass this dataset/datatable to reporting engine to just bind it with the report? So essentially what I want from reporting engine is: not to fire query defind at design time but take my dataset/datatable which is same in terms of structure and everything except data values to the dataset/datatable which reporting engine would have get after firing the query.

Is there a way to achive above thing using RDLobjectModel or ReportService2010 or ReportExection service or combination of these or may be something else?

1

1 Answers

2
votes

Well I got the solution: Custom Data Processing Extension http://msdn.microsoft.com/en-us/library/ms152816(v=sql.105)

A DPE is responsible for fetching the data from a data source and return it back to ssrs server. There are several in built DPE in SSRS like SQL, OLEDB, XML etc. Similarly we can write our own custom DPE and register it with SSRS as well as BI studio. Inside custom DPE I will write my custom code to get system.data.dataset with actual values and return it back to SSRS.

Alternatively I can use XML DPE and use embedded XML as data source while creating the report and at runtime I can replace this embedded XML with the XML representing Dataset with values using ReportService and RDLObjectModel.