基于 CSS 的全系统解决方案
这不需要任何 JavaScript 或 Ajax 框架或任何其他包装器。它在 Internet Explorer、Firefox、Safari 和 Chrome 上进行了测试。
这可以在报表服务器的样式表级别修复。
首先,导航到安装报告服务的目录,在我的例子中(SQL Server 2012 SP1)是:
C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer
在该目录中,您将找到一个名为 reportserver.config 的文件。
请参阅自定义 HTML 查看器和报告管理器的样式表。
在该文件中插入一个 XML 行,例如(来自上述文档):
<Configuration>
...
<HTMLViewerStyleSheet>SafariChromeFix</HTMLViewerStyleSheet>
...
</Configuration>
保存那个。
他们在上面的链接中没有告诉你的是这个条目完全覆盖了默认样式表。我第一次尝试通过添加 div 样式表来渲染报告,但其他一切都被破坏了。一旦我发现对 reporserver.config 文件的编辑没有增加,而是实际上替换了默认样式表,我复制了默认样式表,一切都开始工作了。
接下来,进入 Styles 目录 ( C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\Styles
)。
复制名为 SP_Full.css 的文件并将该副本命名为 SafariChromeFix.css。此时,SafariChromeFix.css 应该与 SP_Full.css 相同。
编辑 SafariChromeFix.css 并将以下行添加到顶部:
div {
overflow: visible !important;
}
保存。
保存后,此 Reporting Services 实例上的所有现有报表都将呈现在所有浏览器上,包括 Chrome 和 Safari。
请注意:
报告服务的更新不仅可能而且极有可能会覆盖reportserver.config,因此您可能必须<HTMLViewerStyleSheet>SafariChrome</HTMLViewerStyleSheet>
随着时间的推移将标签添加到其中。
这也为我们提供了一个进入默认样式表并从已经工作的东西开始进行许多其他自定义更改的地方。由于它不是默认样式表,因此您的新自定义 CSS 文件不会在升级和修补期间被覆盖。