Tuesday, September 22, 2015

SSRS Report Is Blank Under Chrome and Safari

Under Chrome and Safari, SSRS report would just show parameter part but not report content, while under IE, report worked fine.

This error happened because Chrome and Safari render overflow:auto in different way than IE.
SSRS HTML is QuirksMode HTML and depends on IE 5.5 bugs. Non-IE browsers don't have the IE QuirksMode and therefore render the HTML correctly
The HTML page produced by SSRS 2008 R2 reports contain a div which has overflow:auto style, and it turns report part invisible
<div id="ctl31_ctl10" style="height:100%;width:100%;overflow:auto;position:relative;">...</div>
The HTML page produced by SSRS 2012 used ct130_ct109 instead.





Solution:

1. Find ReportingServices.jsfor SSRS 2008, by default it is in the directory C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js. For SSRS 2012, by default, it is in the directory  C:\Program Files\Microsoft SQL Server\MSRS11.xxx\Reporting Services\ReportManager\js\ReportingServices.js, while xxx is the database name. 

2. For SSRS 2008, add following js code to above file:
//Fix to allow Chrome to display SSRS Reports
function pageLoad() {    
var element = document.getElementById("ctl31_ctl10");
if (element) 
{
    element.style.overflow = "visible"; 
} }

For SSRS 2012, add following js code to the file:
//Fix to allow Chrome to display SSRS Reports
function pageLoad() { 
    var element = document.getElementById("ctl32_ctl09");
    if (element) 
    {
        element.style.overflow = "visible";         
    } 
}

Note for SQL 2008 R2 SP1, the div name is ct131_ct109 ninstead. So if above solution doesen't work, you can use Chrome "Inspect Element" function to check the javascript source to find the right div name with overflow:auto and made corresponding fix.





Source:
http://stackoverflow.com/questions/5968082/ssrs-2008-r2-ssrs-2012-reports-are-blank-in-safari-and-chrome

No comments:

Post a Comment