How can I use Same SSRS Report Set for different database instances? - reporting-services

I have a set of 10 reports that we use on multiple instances of our software, currently I create a copy of each report for every database instance.
Is there any way for me to resolve the issue of creating seperate copies, I need just one report set and dynamic datasource switching as per the datasource.
I am expecting a centralized report set that switches as per the instance I am using.

Related

Get space related information from multiple servers

I need to create an SSRS report that would display space related information for all of our servers and associated databases.
Is there a way to create a stored procedure that would loop through all servers and write space information to a temp table?
Or is it possible to do it via SSRS report where based on parameter chosen, it connects to a specific data source, and gets the space related information?
I need to create an SSRS report that would display space related information for all of our servers and associated databases. Is there a way to create a stored procedure that would loop through all servers and write space information to a temp table?
It would be a bit cumbersome, however you can make use of linked servers and dynamic SQL to loop each server and store results in a base table. You can then use the base table as a datasource for your SSRS report.
A better way to do it would be to use a powershell script to loop through each database server, store the results in your database reporting server and utilize an SSRS datasource to access the records from the reporting server.
Or is it possible to do it via SSRS report where based on parameter chosen, it connects to a specific data source, and gets the space related information?
You can make use of an SSRS dynamic datasource to connect to a specific data source and execute SQL to get space related information - however this would only return capacity information on one server. Here is how to work with dynamic datasources:
http://blog.rdx.com/blog/dba_tips/2014/02/creating-dynamic-data-sources-in-ssrs
Best way to do it as above would be to have a single central reporting server as a central data store, which queries each Database Server and stores the data. You can then point your report to the central datasource

Change connection string of datasource on build for SSRS Project

I have a few SSRS projects and when I publish the projects, I have to manually go back to Reporting Services and change back the connection string to the correct server.
Is there a way to automate this? Can I change the connection string on build (before publish) base on my configuration?
I have to assume a few things here..
Your Report has a Datasource called something like Datasource_dev
You are attempting to deploy to different environments that have different datasources like Datasource_test and Datasource_Prod?
If the above conditions are true, then you simply have to set the correct datasource once on each of the servers you are deploying to ie, the first time you deploy the report.
You will also need to set the setting below (in properties of your SSRS project) to
OverwriteDataSources=false
Then all subsequent deployments will retain the datasource that was set manually.
Couple of things to Note.
Make sure you change the setting for all configurations you have (debug,release etc)
If you ever delete the report from the server, you'll have to reset the datasource again
Not sure if there's a way to fully automate it. But did you try to just create a Data source? Then just edit the Data Source connection of the report under Manage? In that way you don't have to go back to SSRS when you will just edit the connection of the report.

SSRS 2012 custom code - Local update of Shared Dataset values - Is this scenario possible?

Assuming a fairly conventional SSRS 2012 report (in Visual Studio 2012) with a main report, a set of sub-reports, a shared dataset that is populated at the start of the report, and a shared datasource.
Is there any simple way within a sub-report's custom code (this is VBA, right?) to access the shared dataset, either to read or update records locally? (No updates back to the database itself.) I'm seeing hints out there that this is possible but no clear examples yet.
And if the above is possible, assuming that a call in the sub-report changed a record in the shared dataset, could that record change be displayed in the main report body?
Yes and No.
I think the overall concept would work but a few points won't.
I don't think you'd be able to use the report dataset with VBA. The code won't have access to the report's datasource directly. You'd probably need to use ADO to access the db from VB.
The only way to see the updated data would be to refresh the report - either manually or automatically on the timer.
I don't see how the subreport is going to figure out what to update the value to. You might have some idea that I'm not seeing right now.
The easier way I see this working would be to use parameters that default to NULL. Then select the row to update with one parameter and the value with another. Then have an UPDATE in your main query that only runs if your parameters are populated.

SSRS 2008 Credentials used to run this report are not stored

I created a report in SSRS, and deployed it. I went to the properties of the report the Process option, and tried to set up Cache a temporary copy of the report and got an error 'Credentials used to run this report are not stored.' I get the same error if I go to Snapshot Options and try to select any of the options there.
Thanks in advance
As per the error, you need to set up the report Data Source similar to the following:
If you're not storing credentials you cannot cache reports or create snapshots.
With cached reports, a temporary copy is created when a user runs a report and this can be used for subsequent runs of the report. Since this could be performed by different users, the only way this can work is if the same connection is used to the Data Source each time; it must be independent of whoever is running the report when the copy is cached.
Same principle for snapshots; no guarantee who will run reports based off the snapshot, so the Data Source connection must be independent of the user running the report, i.e. stored at the Data Source level.

SSRS - Auto Refresh of the Data Set Fields

We have about 90 Report Builder Reports built by power users. These reports are built off the 20 odd Base reporting tables.
Once in a while we add new fields to these reporting tables.
The challenge here is to automatically refresh the Datasets in Report Builder (SSRS) without having to go through each report to manually refresh data on the data set. Since SSRS processes these reports with FMTONLY ON is there a way to automate this process dynamically.
Thanks
So, I think you should use report models
A report model is made from a datasource view and once the DSV is updated, it reflects on the report model and consequently on all reports.
I dont think there is a way of doing it when the reports automatically connect to the DB