SSRS Create Excel Icon on Report - reporting-services

Does anyone know of a way to add an Excel icon somewhere more visible for the user to do an export without having to click on "Actions". Not sure if any of that is customizable?
Additionally, is there a way to create a drill-through report that renders in Excel. I was trying to figure out the RS:format stuff, but not sure how to use this.
I'm trying to make the report as user friendly as possible.
Thanks.

There certainly is, you can do an export using a URL as detailed in this MSDN article: https://msdn.microsoft.com/en-us/library/ms154040.aspx.
All you need to do is set that as the action of an image you place on the report, and you have an export icon. The general format is:
http://myrshost/ReportServer?/myreport&rs:Format=Excel
The main item to note is that myrshost/ReportServer is not going to be the same address as you use when browsing through reports. Instead, it's probably going to be SERVERNAME/ReportServer_INSTANCENAME, filling in the name of your server and database instance respectively.
Edit: A more concrete example of what this would look like:
http://sqlhost/ReportServer_Report2016?/Rentals/Balance%20Overview&rs:Format=Excel

Related

Report Title as a ReadOnly parameter in SSRS

I've tried searching all over the internet for anything close to what I'm looking for and have been very unsuccessful. What I am wanting to do is to create a parameter in SSRS that shows the name of the report in the parameters section. But I want it to only be a label, instead of having a drop down box. I know if you take away the available values it makes it editable. If there is even a way to make a default value read only without having to have available values I think that would be okay as well. Any help would be greatly appreciated.
Parameters are not meant for this purpose. Even if you building the parameters with the RDlObjectModel the report parameter object doesn't even allow the parameter to be read only. I suggest to write your own custom interface to show headers and use a report viewer control.

Can we write a function in SSRS globally

Im currently using SSRS-2008R2. I've an scenario where i have to maintain the External image as a logo for each reports we have. Not, only that, we have our custom date formats that what we should change according to the Date Type users define in an asp.net application.
There are lot of things we have to do on every report. Thats my problem.
Following is the one of them Im currently sharing as example :
Currently i maintain the following function for each reports i've:
Public Function GetLogoImage() As String
Dim ImageLogoURL As String
if Globals!ReportServerUrl is nothing then
ImageLogoURL = "http://localhost/ReportServer" + "?%2fImages%2fLogo"
else
ImageLogoURL = Globals!ReportServerUrl + "?%2fImages%2fLogo"
Return ImageLogoURL
End Function
I hope, i asked question clearly. Im newbie in SO.
Thank you in advance.
If you have a list of functions that you wish to apply to multiple reports and you're not willing to copy them to every single one of them, you can create an external library and then add it as a reference to every report.
This is quite simple to do and there's lot of documentation around the web.You can start here. You will, however, have to maintain this external library but if you have a lot of code, I personally think this is a much better solution.
If you want to have a predefined layout, you may want to consider having a master report and then include other reports as sub-report objects, but you'll lose some flexibility design wise.
Since the accepted answer is more of a comment and the link provided is broken, i'll provide my answer for people who might need a quick guide on how to use custom code in ssrs:
In Design view, right-click the design surface outside the border of the report and click Report Properties.
Click Code.
In Custom code, type the code. Errors in the code produce warnings when the report runs.
Once you press ok, to call the function that you saved you just need to right click on a cell, select "Expression" and paste in the following string: Code.GetLogoImage
More detailed source here.

MS Access: Reports referencing other reports

I have several MS Access 2010 Reports that contain controls that reference other controls on other Reports. So, for example, if report1 has a text box called report1_textBox, and this text box gets its value from a text box on report0 called report0_textBox, then I set the Control Source property of report1_textBox to:
= [Reports]![report0]![report0_textBox]
I created a Form that the user can use to select Reports to open, and when the user selects a Report that depends on other Reports, my code opens those Reports before opening the selected Report. This works fine in some instances, but in other instances I get some strange behavior.
Going back to the example above, I encounter situations where even if I open report0, then open report1, the text box report1_textBox displays #Error as if report0 is closed or does not exist. But if I then just click on report0 and change its view then change it back, then go back to report1 and scroll a little, the text box report1_textBox "magically" changes from #Error to the proper value. I tried hitting the "Refresh All" button after opening the reports, and it does not update the text box.
Does anyone know of a way to fix this or at least work around it?
Thank you!
(Adding: Ideally, I do not want to open multiple reports like I'm doing now. If the user wants to view a report, I would like to only open that report, but from what I understand, if the selected report needs data from another report, that other report needs to be open. I can ultimately solve this by writing VBA code to execute queries, but I would like to avoid this, especially since I already have the data I need - it's just on another report. Does anyone know if it is possible to realize this ideal situation? Thanks!)
I would suggest going with VBA code for this.
Your question, actually, contains an answer (partial) - if you need data from another report that report must be opened first. However, the following code might help you somewhat.
You can open report(s) as hidden:
...
DoCmd.OpenReport "report0", acViewReport, , , acHidden
...
But again, I would recommend to write VBA code to pull the data using either existing queries from other reports or create new ones [queries].

Can we hide or delete report rows in SSRS report while we render it to excel?

Is it possible to delete or hide a particular row in a table item just in excel rendering of the report. I have a summary report , which has a link to its detail report(drill through), when i export the summary report to excel i would like to delete the row with link becasue it wont work from excel . any idea?
Thanks for your time.
San
If your going to export to CSV you could set the DataElementOutput to none. I don't think there is any easy to do this to hide the report in excel. One thing you can try is to make the URL work. I bet the report is using the internal name of the server. There should be a way to configure ssrs to use a FQDN.
I would agree with Josh. In short there isn't an easy way to do it. You could potentially write and install your own plug-in to use instead of the excel output, but this would be pretty time intensive.
if your users know that they want to export to excel/csv, you could just create a new report without the links, but a link on the summary report to the new report you jsut created, and have them export from there.

Internationalization in SSRS

What's the best way to handle translations for stock text in a SSRS. For instance - if I have a report that shows a grid of contents what's the best way to have the correct translation for the header of that grid show up, assuming the culture of the report is set correctly.
Put another way - is it possible to do resources in a SSRS report, or am I stuck with storing all that text in the database and querying for it?
AS far as I know, there is no way to localize a report (meaning automating the translation of string litterals)...
Like you said,you basically have to use the User!Language global variable to catch the user's settings and then use that to retrieve the appropriate strings from the DB...
However, you can adapt the display of currency/numeric/date fields according to the user locale. Also possible is changing the interface of the Report Viewer to match your user's langage.
Here are a few links giving tips on how to adapt the locale:
http://www.ssw.com.au/Ssw/Standards/Rules/RulesToBetterSQLReportingServices.aspx#LanguageSetting
Langage pack for Report Viewer:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=e3d3071b-d919-4ff9-9696-c11d312a36a0