We have a SSRS report server 2008 (not R2) on our internal network that has reports (and data) we want users on the Internet to be able to run. We've created a vb.net web application that users will log into and run reports from. The application runs in our DMZ and is connected to the SQL Server database (running on the same server as the SSRS) via an open port.
I suspect we have to use SSRS Web Service to access the reports since url access would require opening up the SQL Reporting Server to the outside (we don't want to do this). Correct?
I've created a page in the Web application that can render a SSRS report to file but I want to display the report to the user on a web page (and still provide ability to save report). What do I need to do? Can I have the resuls of the Render command be displayed in the Report Viewer or some other control?
Pointers to examples would be great.
Thanks
You're looking for the ReportViewer Controls, specifically the Web version (there's also a WinForms version):
If you incorporate that into your web application you will get a control you can place on any page;
The control can connect to your SQL backend from the web server, so you don't have to expose your SQL backend to anyone else;
The control by default renders in the browser (utilizing the html renderer) providing the user with a nice preview.
The control comes with a nice toolbar that allows for navigating, searching, printing, and also exporting (i.e. saving) to various formats.
Check out the download link for Microsoft Report Viewer 2010 Redistributable Package, which contains both the Web and WinForms controls.
PS. Opening up the SSRS Web Service directly to the world is not something you'd typically want to do. The web service is great for secure communication with your own applications, and gives you some more fine-grained control (as you've noted, by creating a page to export/render reports). For providing a site with reports however, I'd recommend the ReportViewer.
Related
I'm about to set up a web-page where my SSRS will be viewed. I see that there are three options(Report Server Web service, ReportViewer controls for Visual Studio, and URL access)
I wanted to know about the main difference between "ReportViewer controls for Visual Studio" and "URL access" - does the "ReportViewer controls for Visual Studio" require the end user to have extra plug-ins? Thanks!
ReportViewer needs to make calls to the SSRS Server via SOAP requests I believe. It is basically a window into the SSRS site and has all the functionality in the services available visually at once. The viewer usually presents the report in a format like:
http:// (server)/Reports/Pages/Report.aspx?ItemPath=%2f(ReportName)
The URL access is generally the webservice of SSRS doing the work for you directly with commands given to it directly. It is important to note that I believe the web service does all the work for both but the site access also has visual studio on the host and client location also doing some after market CSS rendering and other things from their default locations. The Webservice is just rendering the report and potentially the header where the parameters are. You can even pass in parameters in the URL if you know what you are doing with SSRS. However this does not present a usable object for rendering except in a browser.
EG: say I have a report that takes two parameters: A 'Start' datetime and an 'End' datetime. I can call the web service and render the report and input the parameters at the same time. I could host this in my own browser viewer, but not really do much with the object without developing something else to consume it.
http:// (server)/ReportServer/Pages/ReportViewer.aspx?%2f(ReportName)&rs:Command=Render&Start=11/01/2012&End=1/1/2013
You can also do your own calls in .NET with talking to the SSRS web services or creating your own proxy classes. This is for applications when you want to render in custom formats with events triggered from potentially an application that is not on a set schedule or you want to decouple from the SSRS site and maintain your own settings without relying on the server being the decider of when things happen.
I'm currently using Reporting Services from SQL Server 2012. I know that one of the most common possibility to access reports is to use web server from SSRS itself with its web service. My question is: do we have other possibilities to access these reports, like from our own web page on our own server e.g. IIS or Apache? And do we still need this web server integrated with SSRS?
Sounds like you are looking for this document specifying methods applications can use SSRS. It provides links on how you can implement three methods of server access:
Using the web service
the ReportViewer control
URL access.
URL access can be very easy to implement, you can get the resulting report as a stream and pass it on to the client, save it, display it, &c.
Note that even Report Manager is built using these methods.
There are two methods to access the reports : either from the SSRS web server or from SharePoint.
Note that you can always create a web application that pulls the report list from SSRS and display those reports as you wish by using the SSRS web services.
I'm having trouble figuring this out.
I stopped ALL of local SQL Services, e.g. SQL Server, SQL Agent, Reporting Services. Then using Report Builder 2.0 to create a report connecting to a remote SQL Server (No SSRS running) out in the farm. When I click on "Run" button, for some odd reasons, it still render the report.
I thought you must have SSRS running in the first place. Is SQL Reporting Services even required for Report Builder?
Img
alt text http://www.freeimagehosting.net/image.php?0bf8bb1f1d.jpg
When Reporting Services runs a report, it creates a data file of the data used in the report and, if nothing changes, it uses that data the next time the report runs instead of hitting the server again. You could be seeing the cached data.
Look where the report is kept. There will be a report file, say MyReport.rdl and also the data, MyReport.rdl.data. You could delete that data file otherwise simply changing the report parameters (if you have some) will generally cause the report to disregard the cached data and make a trip to the server again.
I'm answering my own question. Here's my observation after some googling and experimenting.
Report Builder is using a stand alone report control to render report. Visual Studio.NET is probably using the same thing when preview a report. SSRS is required when developers need to incorporate web-based reporting solution, e.g. ASP.NET, as well as to manage reports.
What's really bothering me is that to author reports in VS.NET, I must be using Business Intelligence Projects. In order to do that, I must install SQL Server 2005/2008 with SSRS. Why is so when SSRS is not even required in a LOCAL environment?
We're looking for an easy way to display Access reports on the web. These reports have been written and viewed internally for years. They are not simple tables, but more complex charts and graphs. But, now people outside the organization need to see them. All of the data is in access. And, except for reporting everything else is working fine.
We have a web server that has permissions to see the Access database. However, the Access database server cannot be the webserver itself. So, the question is how do we view these reports on the web? This excellent solution, which I reference in case it helps others, (https://web.archive.org/web/20211020135306/https://www.4guysfromrolla.com/webtech/042600-1.shtml) does not apply, as it requires you to be on a company intranet . (Although, it may be possible to implement the solution outside of an intranet, so many security holes would be opened up that the developer leading this project would surely be fired.) If possible, we also do not want a solution that expects every client to install code, for example, the access runtime.
Is there a tool that can read the
access reports when requested? OR
Is there a tool that can upload the
data from the Access database on a
periodic basis and based on the last
retrieved data - it can display the
report that was written in access?
Other solutions ...
Thanks!
print the reports to pdf and then copy the pdf files to the webserver
Options:
output to PDF.
output to Access snapshot format and force users to use the snapshot viewer.
wait for Access 2010 with Sharepoint 2010 and Access Services and you're home free (as long as you can rewrite your reports to be full web reports, i.e., not VBA and only using the capabilities of web reports in A2010).
We deliver an Access app (and reports therefore) over a Terminal Server as a WebApp.
It seems very easy to deploy new reports to a reporting server directly from visual studio, however when these are to be pushed into our web farm (where developers have no access), this either needs to be done manually, report by report, through microsoft's web front end, or into an MSI.
However, from time to time we might want to reconfigure report options on the report server such as, changing the data source for all reports or changing the caching options for them. Rather than create a whole new MSI for each set of changes or do this manually I wondered if anyone knew of any alternative tools that can update multiple reports at a time or even able to deploy the contents of a folder into a folder on the reporting server.
Cheers, Chris
For Administrators, rs.exe, http://technet.microsoft.com/en-us/library/ms162839.aspx , allows remote scripting via VBScript. If it's possible to give SOAP access, you should be able to accomplish all you want and more without resorting to an MSI.
Thanks, Jamie
Microsoft Reporting Services - Developer