I migrated our reporting services from version 2008 to another server version 2008 R2. In version 2008 the reports work fine on Safari. The new version 2008 R2 the reports do not show up at all. All I see is the parameter section and then the report is blank. Same in Chrome. According to Microsoft Safari IS supported if in a limited fashion. The reports are not complex. In fact I created a report that only had a line on it to see if it would show up in Safari but no, that report is completely blank as well. Did anyone make SSRS reports viewable on Safari? Do I have to mess with some kind of a configuration setting?
相关问题
- Why does SSRS need to recycle the application doma
- Use multiple ReportItems in one expression in RDLC
- How to delete old subscriptions
- QUERY method of Soap request for SSRS and WCF test
- SSL/wallet error trying to access Oracle DB from S
相关文章
- SQL Server Reporting Services - Set default value
- Can't find ReportViewer event for rendering co
- Get list of reports from SSRS?
- SSRS tablix column CanGrow property for width?
- The report server cannot process the report or sha
- SSRS 2008 report not working with using a stored p
- Dataset with dynamic columns in tablix/matrix
- Bulk uploading images to SSRS
Here is the solution I used for Report Server 2008 R2
It should work regardless of what the Report Server will output for use for in its "id" attribute of the table. I don't think you can always assume it will be "ctl31_fixedTable"
I used a mix of the suggestion above and some ways to dynamically load jquery libraries into a page from javascript file found here
On the server go to the directory: C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js
Copy the jquery library jquery-1.6.2.min.js into the directory
Create a backup copy of the file ReportingServices.js Edit the file. And append this to the bottom of it:
Ultimate solution (works in SSRS 2012 too!)
Append the following script to the following file (on the SSRS Server)
C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js
Note: As azzlak noted, the div's name isn't always
ctl31_ctl10
. For SQL 2012 tryctl32_ctl09
and for 2008 R2 tryctl31_ctl09
. If this solution doesn't work, look at the HTML from your browser to see if the script has worked properly changing theoverflow:auto
property tooverflow:visible
.Solution for ReportViewer control
Insert into
.aspx
page (or into a linked.css
file, if available) this style lineReason
Chrome and Safari render
overflow:auto
in different way respect to IE.The HTML page produced by SSRS 2008 R2 reports contain a
div
which hasoverflow:auto
style, and it turns report into an invisible report.I can see reports on Chrome by manually changing
overflow:auto
tooverflow:visible
in the produced webpage using Chrome's Dev Tools (F12).I love Tim's solution, it's easy and working.
But there is still a problem: any time the user change parameters (my reports use parameters!) AJAX refreshes the div, the overflow:auto tag is rewritten, and no script changes it.
This technote detail explains what is the problem:
User einarq suggested this solution:
So wrote the improved script that is shown in the solution.
You can fix this easily with jQuery - and a little ugly hack :-)
I have a asp.net page with a ReportViewer user control.
In the document ready event I then start a timer and look for the element which needs the overflow fix (as previous posts):
Better than assuming it has a certain id. You can adjust the timer to whatever you like. I set it to 1000 ms here.
I am using Chrome version 21 with SQL 2008 R2 SP1 and none of the above fixes worked for me. Below is the code that did work, as with the other answers I added this bit of code to Append to "C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js" (on the SSRS Server) :
The solution provided by Emanuele worked for me. I could see the report when I accessed it directly from the server but when I used a ReportViewer control on my aspx page, I was unable to see the report. Upon inspecting the rendered HTML, I found a div by the id "ReportViewerGeneral_ctl09" (ReportViewerGeneral is the server id of the report viewer control) which had it's overflow property set to auto.
I used the procedure explained by Emanuele to change this to visible as follows:
This is a known issue. The problem is that a div tag has the style "overflow: auto" which apparently is not implemented well with WebKit which is used by Safari and Chrome (see Emanuele Greco's answer). I did not know how to take advantage of Emanuele's suggestion to use the RS:ReportViewerHost element, but I solved it using JavaScript.
Problem
Solution
Since "overflow: auto" is specified in the style attribute of the div element with id "ctl31_ctl10", we can't override it in a stylesheet file so I resorted to JavaScript. I appended the following code to "C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js"
Note
There appears to be a solution for SSRS 2005 that I have not tried but I don't think it is applicable to SSRS 2008 because I can't find the "DocMapAndReportFrame" class.