reporting services - SSRS 2008 R2 - SSRS 2012 - ReportViewer: Reports are blank in Safari and Chrome -


i migrated our reporting services version 2008 server version 2008 r2. in version 2008 reports work fine on safari. new version 2008 r2 reports not show @ all. see parameter section , report blank. same in chrome. according microsoft safari supported if in limited fashion. reports not complex. in fact created report had line on see if show in safari no, report blank well. did make ssrs reports viewable on safari? have mess kind of configuration setting?

ultimate solution (works in ssrs 2012 too!)

append following script following file (on ssrs server)
c:\program files\microsoft sql server\msrs10_50.mssqlserver\reporting services\reportmanager\js\reportingservices.js

function pageload() {         var element = document.getelementbyid("ctl31_ctl10");     if (element)      {         element.style.overflow = "visible";      } } 

note: azzlak noted, div's name isn't ctl31_ctl10. sql 2012 tryctl32_ctl09 , 2008 r2 try ctl31_ctl09. if solution doesn't work, @ html browser see if script has worked changing overflow:auto property overflow:visible.


solution reportviewer control

insert .aspx page (or linked .css file, if available) style line

#reportviewer_ctl09 {   overflow:visible !important;  } 

reason

chrome , safari render overflow:auto in different way respect ie.

ssrs html quirksmode html , depends on ie 5.5 bugs. non-ie browsers don't have ie quirksmode , therefore render html correctly

the html page produced ssrs 2008 r2 reports contain div has overflow:auto style, , turns report invisible report.

<div id="ctl31_ctl10" style="height:100%;width:100%;overflow:auto;position:relative;"> 

i can see reports on chrome manually changing overflow:auto overflow:visible in produced webpage using chrome's dev tools (f12).


i love tim's solution, it's easy , working.

but there still problem: time user change parameters (my reports use parameters!) ajax refreshes div, overflow:auto tag rewritten, , no script changes it.

this technote detail explains problem:

this happens because in page built ajax panels, ajax panels change state, without refreshing whole page. consequently, onload events applied on <body> tag fired once: first time page loads. after that, changing of ajax panels not trigger these events anymore.

user einarq suggested this solution:

another option rename function pageload. functions name called automatically asp.net ajax if exists on page, after each partial update. if can remove onload attribute body tag

so wrote improved script shown in solution.


Comments

Popular posts from this blog

c# - how to write client side events functions for the combobox items -

exception - Python, pyPdf OCR error: pyPdf.utils.PdfReadError: EOF marker not found -