1

我希望有人对我正在经历的事情有所了解。

多年来,我一直在使用各种版本的报表查看器控件(WinForms 和 Web),并且刚刚开始尝试在 ASP .NET Wed Forms 项目中使用基于 HTML5 的最新版本。

我的环境如下:使用 Windows 7 和 SQL Server 2014 包括 SSRS 的开发笔记本电脑。带有 2008R2、2014 和 2016 Reporting Services 的各种远程服务器。

我已按照 Microsoft Docs 中的本教程页面进行操作: https ://docs.microsoft.com/en-us/sql/reporting-services/application-integration/using-the-webforms-reportviewer-control ,并已设置指向远程服务器报告的页面。

代码背后:

protected void Page_Init(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {                
        rv14.ProcessingMode = ProcessingMode.Remote;
        ServerReport serverReport = rv14.ServerReport;

       // A 2016 Report
       serverReport.ReportServerUrl = new Uri("http://2016server/reportserver");
       serverReport.ReportPath = "/Sports";

       // A 2014 Report
       // serverReport.ReportServerUrl = new Uri("http://2014server/reportserver");
       // serverReport.ReportPath = "/SQL2014DemoReports/VertBar";

       // A 2008R2 Report
       // serverReport.ReportServerUrl = new Uri("http://2008R2server/Reportserver");
       // serverReport.ReportPath = "/DemoReports/VertBar";

   } 
}

ASPX

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Reports.aspx.cs" Inherits="WebNew.Reports" %>    
<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Reports</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
        <rsweb:ReportViewer ID="rv14" runat="server" Width="100%" Height="100%"></rsweb:ReportViewer>
    </form>
</body>
</html>

当我运行该页面时,新的基于 HTML 的工具栏会呈现,并且我会看到“正在加载”迷你对话框,但随后什么也没有。未呈现报告正文。代码中当前未注释的报告是几页长的简单运动列表,并不复杂。

我可以说服务器已被联系并回复,因为我看到分页控件指示存在多个页面,如果我随后使用任何导出控件(例如 PDF),则 PDF 确实具有正确的呈现输出它。

它根本没有显示在我的网页中。

我试过 IE (11)、Chrome (58) 和 Firefox (49) 都显示相同的行为。我定位哪个服务器或者我是否连接到我的本地实例都没有关系。

有没有人看到这种行为,有任何可能发生的事情的指针,或者尝试调试的好方法?

非常感谢

4

2 回答 2

4

好的,所以我偶然发现了我所看到的解决方案。问题似乎与观众所包含的内容有关。

如果我将查看器包装在 DIV 中并将其高度设置为 100 垂直高度,那么查看器确实可以正确显示其内容。以前它必须有效地位于高度为零的容器中。

工作的 ASPX 代码如下所示:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>2016 Report Viewer Test</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <div style="height:100vh">            
            <rsweb:ReportViewer 
                ID="rv14" 
                runat="server" 
                Width="100%" 
                Height="100%">
            </rsweb:ReportViewer>
        </div>
    </form>
</body>
</html>

希望有一天这对某人有所帮助。:-)

于 2017-07-03T07:37:56.707 回答
3

添加这个,为我工作。

rv14.SizeToReportContent = true;
于 2018-02-13T15:33:11.077 回答