Udostępnij przez


Rozpocznij pracę z kontrolkami Report Viewer

Kontrolki Podgląd raportów mogą służyć do integrowania raportów języka RDL (Report Definition Language) usług Reporting Services z aplikacjami WebForms i WinForms. Aby uzyskać szczegółowe informacje o najnowszych aktualizacjach, zobacz Informacje o wydaniu dla Kontrolek Podglądu Raportów dla formularzy WebForms i WinForms usług SSRS.

Dodawanie kontrolki Podgląd raportów do nowego projektu internetowego

  1. Utwórz nową ASP.NET pustą witrynę sieci Web lub otwórz istniejący projekt ASP.NET.

    Możesz użyć programu .NET Framework 4.6 lub dowolnej nowszej wersji.

    Zrzut ekranu programu Visual Studio z wyróżnioną nową pustą witryną sieci Web ASP.NET.

  2. Zainstaluj pakiet NuGet kontrolki Podgląd raportu za pomocą konsoli menedżera pakietów NuGet.

    Install-Package Microsoft.ReportingServices.ReportViewerControl.WebForms
    
  3. Dodaj nową stronę .aspx do projektu i zarejestruj zestaw kontrolek Podgląd raportów do użycia na stronie.

    <%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
    
  4. Dodaj element ScriptManagerControl do strony.

  5. Dodaj kontrolkę Podgląd raportów do strony. Poniższy fragment kodu można zaktualizować w celu odwołania się do raportu hostowanego na zdalnym serwerze raportów.

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

Ostatnia strona powinna wyglądać podobnie do poniższego przykładu.

<%@ 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>

Aktualizowanie istniejącego projektu w celu używania kontrolki Podgląd raportów

Pamiętaj, aby zaktualizować wszystkie odwołania do zestawu do wersji 15.0.0.0, w tym web.config projektu i wszystkich stron .aspx odwołujących się do kontrolki przeglądarki.

Przykładowe zmiany 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>

Przykład .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>

Dodaj kontrolkę Podgląd raportów do nowego projektu Windows Forms

  1. Utwórz nową aplikację Windows Forms lub otwórz istniejący projekt.

    Możesz użyć programu .NET Framework 4.6 lub dowolnej nowszej wersji.

    Zrzut ekranu programu Visual Studio z wyróżnioną nową aplikacją Windows Forms.

  2. Zainstaluj pakiet NuGet kontrolki Podglądu raportów za pomocą konsoli menedżera pakietów NuGet.

    Install-Package Microsoft.ReportingServices.ReportViewerControl.WinForms
    
  3. Dodaj nową kontrolkę z kodu lub dodaj kontrolkę do paska narzędzi.

    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 ustawić wysokość 100% w kontrolce Podgląd raportów

Po ustawieniu wysokości kontrolki wyświetlacza na 100%, element nadrzędny musi mieć określoną wysokość, lub wszyscy przodkowie muszą mieć wysokości procentowe.

Ustaw wysokość wszystkich przodków 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>

Ustawianie atrybutu height obiektu nadrzędnego

Aby uzyskać więcej informacji na temat długości procentowej widoku, zobacz Viewport-percentage lengths (Długość procentowa widoku).

<!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>

Dodawanie kontrolki do paska narzędzi programu Visual Studio

Kontrolka podglądu raportów jest teraz dostarczana jako pakiet NuGet i domyślnie nie jest wyświetlana w przyborniku programu Visual Studio. Kontrolkę można dodać do przybornika ręcznie.

  1. Zainstaluj pakiet NuGet dla formularzy WinForms lub WebForms, jak wspomniano wcześniej.

  2. Usuń kontrolkę przeglądarki raportów wymienioną w przyborniku.

    Zrzut ekranu narzędzi programu Visual Studio z wyróżnioną pozycją Usuń w kontrolce ReportViewer.

  3. Kliknij prawym przyciskiem myszy gdziekolwiek w przyborniku i wybierz opcję Wybierz elementy....

    Zrzut ekranu przybornika programu Visual Studio z wyróżnioną opcją Wybierz elementy.

  4. W obszarze Składniki programu .NET Framework wybierz pozycję Przeglądaj.

    Zrzut ekranu programu Visual Studio z wyróżnionym przyciskiem Przeglądaj w oknie dialogowym składników .NET Framework.

  5. Wybierz Microsoft.ReportViewer.WinForms.dll lub Microsoft.ReportViewer.WebForms.dll z zainstalowanego pakietu NuGet.

    Uwaga / Notatka

    Pakiet NuGet zostanie zainstalowany w katalogu rozwiązania projektu. Ścieżka do biblioteki DLL będzie podobna do następującej: {Solution Directory}\packages\Microsoft.ReportingServices.ReportViewerControl.Winforms.{version}\lib\net40 lub {Solution Directory}\packages\Microsoft.ReportingServices.ReportViewerControl.WebForms.{version}\lib\net40.

  6. Nowa kontrolka powinna być wyświetlana w narzędziowniku. Jeśli chcesz, możesz przenieść ją na inną zakładkę w przyborniku.

    Zrzut ekranu przedstawiający nową kontrolkę ReportViewer w przyborniku programu Visual Studio.

Typowe problemy

Kontrolka przeglądarki jest przeznaczona dla nowoczesnych przeglądarek. Kontrolka może nie działać zgodnie z oczekiwaniami, jeśli przeglądarka renderuje stronę przy użyciu trybu zgodności z programem IE. Witryny intranetowe mogą wymagać tagu meta, aby zastąpić domyślne zachowanie przeglądarki.

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

strony NuGet.org

Poniżej znajdują się linki do artykułów w witrynie NuGet.org na temat wersji WebForm i WinForm kontrolki Podgląd raportów:

Opinie na forum

Poinformuj zespół o problemach na forach usług Reporting Services.