0

更新:仅在 Chrome 中失败,这在 IE10 和 FF 中都有效。

我创建了一个 SSRS 报表并将其发布到报表服务器。我有一个带有报表查看器的单独 Web 应用程序,它查看报表服务器以查看数据。当我将服务器报告转换为 PDF 时,报告显示得很好,但是速度很慢。我只想按原样显示报告,但这样做时我只看到一个空白页。这是我的代码。我使用了HERE的 SsrsReportInfo 类。请让我知道我错过了什么。

    private void OpenServerReport()
    {
        //Create SSRS Parameters
        var reportInfo = new SsrsReportInfo("TestReport", "http://localhost/ReportServer", @"/ReportTesting2/MainReport");

        //Initialize ServerReport
        ReportViewer1.ServerReport.ReportPath = reportInfo.ReportPath;
        ReportViewer1.ServerReport.ReportServerUrl = new Uri(reportInfo.ReportServerUrl);

        if (reportInfo.Parameters != null)
        {
            ReportViewer1.ServerReport.SetParameters(reportInfo.Parameters);
        }

        ReportViewer1.ServerReport.Refresh();

        //Automatically display as PDF
        //var bytes = ReportViewer1.ServerReport.Render("PDF");
        //Response.Buffer = true;
        //Response.Clear();
        //Response.ClearContent();
        //Response.ClearHeaders();
        //Response.ContentType = "application/pdf";
        //Response.BinaryWrite(bytes);
        //Response.End();
    }

PS 这与报表管理器中的功能相同。当我从报告管理器(localhost/reports/myfolder/reportname)中选择报告时,我看到一个空白页,但我可以单击保存按钮并将其保存为 PDF 并查看实际报告。报表服务器 (localhost/ReportServer/myfolder/reportname) 会显示报表数据。

4

1 回答 1

1

除了 SSRS 是 MS 的专有产品和 MS 使用不同的 IE 渲染引擎之外,与其他任何事情都没有任何关系,这与 Chrome(我也更喜欢)、Firefox、Opera 和 Safari 等浏览器不同。您可以做两件事来停止渲染到不同格式然后呈现它的头痛:

  1. 只需将“IE Tab”插件安装到 Chrome 和 Firefox 以及所有想要查看报告的站点。我通常只是这样做,并且在某些需要“Active X”或某些专有 MS 东西的网站上,它工作得很好。

  2. 您将需要更改 SSRS 服务器上的默认 CSS 设置以调整预期的输出。在我看来,为 SSRS 提供跨浏览器支持是一件痛苦的事,但 StackOverflow 中的某个人出于某种原因实际上想要这个答案超过了 1 号,并且可以做到。这种方法的问题是,你每次拥有一个新的布局都会杀死一个不同的浏览器,不得不编写更多的 CSS 来处理它,而不是仅仅伪造一个不同的渲染引擎。

一段时间以来,我在 Chrome 渲染某些报告时遇到了问题,现在我从来没有这样做过。我什至不使用 IE 与那些说你必须使用 IE 的网站。只是带有 Chrome 的 IE 标签 ;)

于 2013-10-30T21:17:29.233 回答