Začínáme s ovládacími prvky Prohlížeče sestav

Ovládací prvky Prohlížeče sestav lze použít k integraci sestav jazyka RDL (Reporting Services Definition Language) do aplikací WebForms a WinForms. Podrobné informace o nedávných aktualizacích najdete v poznámkách k verzi pro ovládací prvky Prohlížeče sestav pro WebForms a WinForms SSRS.

Přidejte ovládací prvek Report Viewer do nového webového projektu

  1. Vytvořte nový ASP.NET Prázdný web nebo otevřete existující projekt ASP.NET.

    Můžete použít rozhraní .NET Framework 4.6 nebo jakoukoli novější verzi.

    Snímek obrazovky sady Visual Studio se zvýrazněním nového ASP.NET prázdného webu

  2. Nainstalujte balíček NuGet ovládacího prvku Prohlížeče sestav prostřednictvím konzoly správce balíčků NuGet.

    Install-Package Microsoft.ReportingServices.ReportViewerControl.WebForms
    
  3. Přidejte do projektu novou stránku .aspx a zaregistrujte sestavení ovládacího prvku "Prohlížeč sestav" pro použití na stránce.

    <%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
    
  4. Na stránku přidejte ScriptManagerControl .

  5. Na stránku přidejte ovládací prvek Prohlížeč sestav. Následující fragment kódu lze aktualizovat tak, aby odkazovala na sestavu hostovanou na vzdáleném serveru sestavy.

    <rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote">
      <ServerReport ReportPath="" ReportServerUrl="" />
    </rsweb:ReportViewer>
    

Poslední stránka by měla vypadat jako v následujícím příkladu.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Sample" %>

<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=15.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">
    <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager runat="server"></asp:ScriptManager>
        <rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote">
            <ServerReport ReportServerUrl="https://AContosoDepartment/ReportServer" ReportPath="/LatestSales" />
        </rsweb:ReportViewer>
    </form>
</body>
</html>

Aktualizujte stávající projekt, aby používal ovládací prvek Prohlížeč sestav

Nezapomeňte aktualizovat všechny odkazy na sestavení na verzi 15.0.0.0, včetně web.config projektu a všech stránek .aspx, které odkazují na ovládací prvek prohlížeče.

Ukázkové změny web.config

<?xml version="1.0"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  https://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.6">
      <assemblies>
        <!-- All assemblies updated to version 15.0.0.0. -->
        <add assembly="Microsoft.ReportViewer.Common, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
        <add assembly="Microsoft.ReportViewer.DataVisualization, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
        <add assembly="Microsoft.ReportViewer.Design, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
        <add assembly="Microsoft.ReportViewer.ProcessingObjectModel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
        <add assembly="Microsoft.ReportViewer.WebDesign, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
        <add assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
        <add assembly="Microsoft.ReportViewer.WinForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
      </assemblies>
      <buildProviders>
        <!-- Version updated to 15.0.0.0. -->
        <add extension=".rdlc"
          type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
      </buildProviders>
    </compilation>
    <httpRuntime targetFramework="4.6"/>
    <httpHandlers>
      <!-- Version updated to 15.0.0.0 -->
      <add path="Reserved.ReportViewerWebControl.axd" verb="*"
        type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"
        validate="false"/>
    </httpHandlers>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true"/>
    <handlers>
      <!-- Version updated to 15.0.0.0 -->
      <add name="ReportViewerWebControlHandler" verb="*" path="Reserved.ReportViewerWebControl.axd" preCondition="integratedMode"
        type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
    </handlers>
  </system.webServer>
</configuration>

Ukázka .aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="SampleAspx" %>

<!-- Update version to 15.0.0.0 -->
<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>

<!DOCTYPE html>

Přidejte ovládací prvek Prohlížeč sestav do nového projektu Windows Forms

  1. Vytvořte novou aplikaci Windows Forms nebo otevřete existující projekt.

    Můžete použít rozhraní .NET Framework 4.6 nebo jakoukoli novější verzi.

    Snímek obrazovky z Visual Studio, kde je zvýrazněna nová aplikace Windows Forms.

  2. Nainstalujte balíček NuGet ovládacího prvku Prohlížeče sestav prostřednictvím konzoly správce balíčků NuGet.

    Install-Package Microsoft.ReportingServices.ReportViewerControl.WinForms
    
  3. Přidejte nový ovládací prvek z kódu nebo ho přidejte na panel nástrojů.

    private Microsoft.Reporting.WinForms.ReportViewer reportViewer1;
    
    private void InitializeComponent()
    {
        this.reportViewer1 = new Microsoft.Reporting.WinForms.ReportViewer();
        this.SuspendLayout();
        // 
        // reportViewer1
        // 
        this.reportViewer1.Location = new System.Drawing.Point(168, 132);
        this.reportViewer1.Name = "reportViewer1";
        this.reportViewer1.ServerReport.BearerToken = null;
        this.reportViewer1.Size = new System.Drawing.Size(396, 246);
        this.reportViewer1.TabIndex = 0;
        // 
        // Form1
        // 
        this.Controls.Add(this.reportViewer1);
    }
    

Jak nastavit 100% výšku v ovládacím prvku Prohlížeče sestav

Když nastavíte výšku zobrazovacího prvku na 100 %, nadřazený prvek musí mít definovanou výšku, nebo všechny jeho předcházející prvky musí mít procentuální výšku.

Nastavte výšku všech předků na 100%

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <style>
        html,body,form,#div1 {
            height: 100%; 
        }
    </style>
   </head>
<body>
    <form id="form1" runat="server">
    <div id="div1" >
            <asp:ScriptManager runat="server"></asp:ScriptManager>
        <rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote" Height="100%" Width="100%">
            <ServerReport ReportServerUrl="https://test/ReportServer" ReportPath="/testreport" />
        </rsweb:ReportViewer>
    </div>
    </form>
</body>
</html>

Nastavení atributu height nadřazeného objektu

Další informace o délkách v procentech zobrazení najdete v tématu Délky v procentech zobrazení.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
</head>
<body>
    <form id="form1" runat="server">
    <div style="height:100vh;">
            <asp:ScriptManager runat="server"></asp:ScriptManager>
        <rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote" Height="100%" Width="100%">
            <ServerReport ReportServerUrl="https://test/ReportServer" ReportPath="/testreport" />
        </rsweb:ReportViewer>
    </div>
    </form>
</body>
</html>

Přidání ovládacího prvku na panel nástrojů sady Visual Studio

Ovládací prvek Prohlížeče sestav se teď dodává jako balíček NuGet a ve výchozím nastavení se už nezobrazuje v sadě nástrojů sady Visual Studio. Ovládací prvek můžete do panelu nástrojů přidat ručně.

  1. Nainstalujte balíček NuGet pro WinForms nebo WebForms, jak je uvedeno výše.

  2. Odeberte ovládací prvek Prohlížeče sestav, který je uvedený v sadě nástrojů.

    Snímek obrazovky s panelem nástrojů sady Visual Studio a zvýrazněním Možnosti Odstranit v ovládacím prvku ReportViewer

  3. Klikněte pravým tlačítkem na libovolné místo v sadě nástrojů a vyberte Zvolit položky....

    Snímek obrazovky s panelem nástrojů sady Visual Studio se zvýrazněnou možností Zvolit položky

  4. V komponentách rozhraní .NET Framework vyberte Procházet.

    Snímek obrazovky sady Visual Studio se zvýrazněním tlačítka Procházet v dialogovém okně Součásti rozhraní .NET Framework

  5. Vyberte Microsoft.ReportViewer.WinForms.dll nebo Microsoft.ReportViewer.WebForms.dll z nainstalovaného balíčku NuGet.

    Poznámka:

    Balíček NuGet se nainstaluje do adresáře řešení vašeho projektu. Cesta k knihovně DLL bude podobná následující: {Solution Directory}\packages\Microsoft.ReportingServices.ReportViewerControl.Winforms.{version}\lib\net40 nebo {Solution Directory}\packages\Microsoft.ReportingServices.ReportViewerControl.WebForms.{version}\lib\net40.

  6. Nový ovládací prvek by se měl zobrazit v sadě nástrojů. Pokud chcete, můžete ho přesunout na jinou kartu v rámci panelu nástrojů.

    Snímek obrazovky nového ovládacího prvku ReportViewer v sadě nástrojů sady Visual Studio

Běžné problémy

Ovládací prvek prohlížeče je určený pro moderní prohlížeče. Ovládací prvek nemusí fungovat podle očekávání, pokud prohlížeč stránku vykreslí v režimu kompatibility IE. Intranetové weby můžou vyžadovat metaznačku k přepsání výchozího chování prohlížeče.

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

NuGet.org stránky

Tady jsou odkazy na články na webu NuGet.org o verzích WebForm a WinForm ovládacího prvku Prohlížeč sestav:

Názory na fórum

Dejte týmu vědět o problémech na fórech služby Reporting Services.