我在 SSRS 2008 R2 中有一些简单的报告,但它们根本不会在 Safari 或 Chrome 中显示。根据 Microsoft 的 Books Online,这些浏览器的支持方式有限。但是,在数据“加载”时钟完成后,我什么也看不到。页面顶部的参数栏和面包屑导航部分都在那里。此外,我可以在 Safari 和 Chrome 上保存/导出为任何格式。它只是不会显示报告部分本身,它只是空白。

我是否应该使用证书和安全连接(目前未使用 HTTPS 设置,仅使用 HTTP)?是否有任何需要调整的服务器端配置?有没有人使用以前的 SSRS 版本(2005)在 Safari/Chrome 上成功显示任何报告?

我正在使用 Safari 5.0.4 0x2518122313431541 19 19 19 19我知道这两个浏览器的相似之处在于它们都基于 WebKit

该报告可以在 Internet Explorer 8(当然)和 Firefox 4.0 上成功呈现。

如果有人能对此有所了解,我将不胜感激。

最佳答案

终极解决方案(也适用于 SSRS 2012!)

将以下脚本附加到“ C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js ”(在 SSRS 服务器上):

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

实际上我不知道 div 的名称是否总是 ctl31_ctl10 :在我的情况下是(而不是通过 SQL Server 2012 azzlak 找到 ctl32_ctl09 )。

如果此解决方案不起作用,请查看浏览器中的 HTML 以查看脚本是否正常工作,将 overflow:auto 属性更改为 overflow:visible。

ReportViewer控件的解决方案

将此样式行插入 .aspx 页面(或插入链接的 .css 文件,如果可用):
#reportViewer_ctl09 {
  overflow:visible !important;
}

原因

Chrome 和 Safari 以不同的方式呈现 overflow:auto 相对于 Internet Explorer。



SSRS 2008 R2 报告生成的 HTML 页面包含一个 div,该 div 具有溢出:自动样式,它将报告变成不可见的报告。
<div id="ctl31_ctl10" style="height:100%;width:100%;overflow:auto;position:relative;">
...</div>

手动更改(使用 Chrome 的调试窗口)最终 HTML 溢出:溢出中的自动:可见我可以在 Chrome 上看到报告。

我爱 Tim's solution ;这很容易而且有效。

但是仍然存在一个问题:任何时候用户更改参数(我的报表使用参数!)AJAX 刷新 div,overflow:auto 标记被重写,并且没有脚本更改它。
This technote detail 解释了问题所在。



Mr.einarq 向我建议了解决方案 here



如果页面上存在任何具有此名称的函数,ASP.NET Ajax 将自动调用它,在每次部分更新之后也是如此。如果您这样做,您还可以从 body 标记中删除 onload 属性

所以我编写了解决方案中显示的改进脚本。

关于reporting-services - SSRS 2008 R2 - SSRS 2012 - ReportViewer : Reports in Safari/Chrome but works fine in Firefox/Internet Explorer 8. .. 为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5428017/

10-13 06:12