SSRS find out Data Source for a multiple reports - reporting-services

I've been tasked to find out the Data Source of 135 SSRS reports.
I want to avoid going into those reports individualy to find out what is the source of the reports.
Is there a way to run a query to find out the Data Source for the SSRS Report?
I've tried to run exsiting reports showing overview data about our SSRS web portal , but non of those inludes the data source for the reports.

If you just want the datasource names then you can use something like this. I've only picked a few columns for clarity ...
use ReportServer
select
c.[Path]
, c.Name
, dsrc.Name
FROM [Catalog]c
JOIN DataSource dsrc on dsrc.ItemID = c.ItemID

Related

building Power BI report using SSAS Cube as Source

Requirement: We are trying to build PowerBI report using SSAS Cube as a source.
Currently we already have the same report in SSRS which is using the same cube as source.
so we are upgrading to Power BI as per the user's need and the SSRS report will be decommissioned after successful implementation of this.
The SSAS cube also has some complex calculations (calculations tab of the Cube) which are used in the SSRS report.
There are many columns which have been hidden too but are called into the SSRS Dataset.
The current SSRS report dataset has an MDX query(including some of the hidden columns) which serves as the Main query for report (Matrix type report with row groups and column groups), along with other smaller datasets which supply values to parameters
The MDX query in the SSRS report has around 6 parameters(which user can choose the values from the SSRS parameters prompts)
We are trying to find all the possible ways so that we can build the report in PowerBI
Our findings and what we have tried so far :
1)We have tried live connection after unhiding the columns (only those ones which are called in the MDX query) but we could not perform any transformations or calculations due to Live connection limitation. We thought about creating possible calculations with in the Cube level but don't know if it would actually give us the desired results correctly which would match with existing SSRS report as a comparison.
2)We tried Import mode using the same MDX query which is used in SSRS report by supplying values to the parameters(for example we passed [Report ID].[Report ID].&['a specific City name'] replaced with [Report ID].[Report ID].Children, so that we get data for all the cities instead of just 1 city) but the results are coming out incorrect.
Please if someone can provide us a valid approach on the architecture part, it would be really helpful as it will help us to get started.
Please let me know if something is not clear, so I can add more to this

'Report Link' for SSRS to Read Directly From Server and Transfer Parameters

I'm currently working with Visual Studio 2012 and SQL Server 2012 and trying to figure out an SSRS-related question boss asked me.
Currently in SQL, in one server I have a Comment Table which features over 2 million records and due to restrictions on main DW, I'm not able to transfer all the data from that server into a different server where all my reporting is done from.
Using SSRS, I'm trying to see if there is a way where I can provide a 'comment lookup' link and have it launch a SSRS report that can read directly from a server and also transfer parameters?
Any help or suggestions would be greatly appreciated.
There's a few ways you can do this.
In the current report
As #LONG said in a comment on your question, if the Sql Server with the comments is a linked server in the data warehouse Sql Server, then you could include the comments within the same report. This is like including data from another database on the same Sql Server, except you also specify the linked server name like so: LinkedServerName.Database.Schema.TableName.
For example, let's say the comments are on blogs:
SELECT B.Title, C.Comment
FROM Blogs B
INNER JOIN CommentServer.CommentsDb.dbo.Comments C ON C.BlogId = B.BlogId
In a drill-down Subreport
You can create a report which uses a datasource that accesses the Sql Server with the comments. On your main report, on the relevant cell for the field, Right-Click, select Textbox Properties... choose Actions in the left menu, select Go To Report and choose your comments report from the drop down. Then you are able to map the subreport's parameters to the main report's parameters and fields and these will be passed through when running the subreport.
When you click on that field when in the main report, it will automatically drill down into the comments report.
As a parameterised link to run the report
Again, create a report for the comments. On your main report, on the relevant cell for the field, Right-Click, select Textbox Properties... choose Actions in the left menu, select Go To URL. For the expression for the URL, put in something like:
="http://ReportServer/ReportFolder/ReportName.rdl&rs%3aCommand=Render&BlogId=" & Fields!BlogId.Value & "&FromDate=" & Parameters!FromDate.Value & "&ToDate=" & Parameters!ToDate.Value
This will turn the field in your report into a parameterised link to the comments report.

Export separate pdfs from SSRS generated report

Is it possible for SSRS to name and separate pdf exported files based on parameter groupings? Right now, when I run the report, it only gives me one pdf with 100+ pages. However, at every page-break, I'd like SSRS to create a new pdf file, and it'd be a real time-saver if it would also insert the pdf's filename based on the grouping selection.
Is this possible in SSRS, or do i need to use SSIS for this functionality?
I'm using 'Visual Studio 2010' for SSRS, and 'SQL Server 2012' for integration services
You would be able to do all of what you want in SSRS - if you have the Enterprise edition that has Data-Driven Subscriptions.
https://msdn.microsoft.com/en-us/library/ms159150(v=sql.130).aspx
You would have a parameter for the grouping (your page-break) - for example UserID.
In your data-driven query (NOT the report but a different query used to fire the subscription), you would have a field for your grouping - your UserID in our example. Another field could have your ReportName that is derived from your data - ex.
UserID, 'ReportName for ' + UserName + ' on ' + GetDate() as ReportName
When the data-driven query runs, it will create a record for each UserID which in turn will fire a report for each UserID using it as the parameter to limit the report to just that userID. You could even have that report only e-mailed to that user.
There are ways to run data-driven subscritptions without the Enterprise Edition using SSIS but the do take a bit of work.
http://geoffbi.blogspot.com/2012/04/data-driven-subcriptions-in-standard.html

Multiple Datasets in One Report in SSRS 2012

I'm trying to include two sets of data in SSRS 2012. In my datasource (called DS) I'm pulling two datasets - we'll call them OfficeActivity and Transactions. Neither dataset has any data relation to the other. The Transactions dataset is displayed in a table, while the OfficeActivity dataset will be used to populate some fields in the header - e.g. "Total Sales: $XXXXX.XX"
When I create a new SSRS project and use the wizard, I can create the Transactions table without problems, and it runs without a hitch. The problem is when I try to include the OfficeActivity data.
In the Report Data pane I right-click my DS datasource and choose "Add Dataset...". I give the new dataset a name, select DS as the datasource, and choose the OfficeActivity dataset under Available Datasets. The result looks like this:
The Report Data pane now looks like this:
However when I attempt to run the report I get the following error:
A data source instance has not been supplied for the data source 'dsOA'.
Can anybody provide any guidance on why this isn't working? Thank you in advance.
That looks like a possible bug in the wizard to me. Have you tried editing the properties of the dsOA dataset and setting the data source properties again?

SSRS - How to render child datasets

I'm designing a SSRS report in Visual Studio for use as a local report (so a SQL Server is not involved).
I have a table with customers/addresses that has the following columns:
AddressID
Firstname
Lastname
Street
Another table keeps orders and looks like this
OrderID
CustomerAddressID
ShopAddressID
So two columns from my order table link to datasets in the address table. I want to display both addresses in my report. The datasource for the report is a xsd dataset.
What's the best way to do this in SSRS? I'm pretty new to SSRS and kind of lost with the dataregions, lists, etc.
You should edit the source for the second dataset to include a parameterized query based on the first one. Something like:
SELECT * FROM other_table
WHERE CustomerAddressID = #adress
OR ShopAddressID = #address
Of course you should create the address parameter as report parameter(pointing to the first dataset)
Hope this makes sense.
Look at subreports.
To be a bit more specific, you need to define multiple data sources in your report that these other regions, tables, or whatever, obtain their data from. You then need callback handlers in your app that can provide that data for each datasource (quoting: "your application must handle the SubreportProcessing event of the LocalReport object.". The article explains this in detail.
Just curious (because I am going to through the same thing right now) - are you really designing SSRS reports (2008), or VS reports (2005)? Because the 2008 ReportViewer control cannot render SSRS 2008 reports ....