Rapor Görüntüleyicisi denetimlerini kullanmaya başlama

Rapor Görüntüleyicisi denetimleri, Reporting Services rapor tanımı dili (RDL) raporlarını WebForms ve WinForms uygulamalarıyla tümleştirmek için kullanılabilir. Son güncelleştirmeler hakkında ayrıntılı bilgi için bkz. WebForms ve SSRS WinForms için Rapor Görüntüleyicisi denetimleri için sürüm notları.

Rapor Görüntüleyicisi denetimini yeni bir web projesine ekleme

  1. Yeni ASP.NET Boş Web Sitesi oluşturun veya var olan bir ASP.NET proje açın.

    .NET Framework 4.6 veya daha yeni bir sürüm kullanabilirsiniz.

    Visual Studio ekran görüntüsü, yeni ASP.NET Boş Web Sitesi'ni vurguluyor.

  2. Rapor Görüntüleyicisi denetimi NuGet paketini NuGet paket yöneticisi konsolu aracılığıyla yükleyin.

    Install-Package Microsoft.ReportingServices.ReportViewerControl.WebForms
    
  3. Projeye yeni bir .aspx sayfası ekleyin ve Rapor Görüntüleyicisi denetim derlemesini sayfa içinde kullanmak üzere kaydedin.

    <%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
    
  4. Sayfaya bir ScriptManagerControl ekleyin.

  5. Rapor Görüntüleyicisi denetimini sayfaya ekleyin. Aşağıdaki kod parçacığı, uzak rapor sunucusunda barındırılan bir rapora başvuracak şekilde güncelleştirilebilir.

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

Son sayfa aşağıdaki örnekteki gibi görünmelidir.

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

Mevcut projeyi Rapor Görüntüleyicisi denetimini kullanacak şekilde güncelleştirme

Projenin web.config ve görüntüleyici denetimine başvuran tüm .aspx sayfaları dahil olmak üzere tüm derleme başvurularını 15.0.0.0 sürümüne güncelleştirdiğinizden emin olun.

Örnek web.config değişiklikleri

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

Örnek .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>

Rapor Görüntüleyicisi denetimini yeni bir Windows Forms projesine ekleme

  1. Yeni bir Windows Forms Uygulaması oluşturun veya var olan bir projeyi açın.

    .NET Framework 4.6 veya daha yeni bir sürüm kullanabilirsiniz.

    Yeni bir Windows Forms Uygulamasını vurgulayan Visual Studio'nun ekran görüntüsü.

  2. Rapor Görüntüleyicisi denetimi NuGet paketini NuGet paket yöneticisi konsolu aracılığıyla yükleyin.

    Install-Package Microsoft.ReportingServices.ReportViewerControl.WinForms
    
  3. Koddan yeni bir denetim ekleyin veya denetimi araç çubuğuna ekleyin.

    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);
    }
    

Rapor Görüntüleyicisi denetiminde 100% yüksekliği ayarlama

Görüntüleyici denetiminin yüksekliğini %100 olarak ayarladığınızda, ana öğenin tanımlı bir yüksekliği, veya tüm üst öğelerin yüzde olarak yükseklikleri olmalıdır.

Tüm ataların yüksekliğini 100% olarak ayarlayın

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

Ana öğenin yükseklik özniteliğini ayarla

Görünüm penceresi yüzde uzunlukları hakkında daha fazla bilgi için bkz. Görünüm penceresi yüzdesi uzunlukları.

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

Denetimi Visual Studio araç çubuğuna ekleme

Rapor Görüntüleyici Denetimi artık bir NuGet paketi olarak sağlanmakta ve artık varsayılan olarak Visual Studio araç kutusunda gösterilmemektedir. Denetimi araç kutusuna el ile ekleyebilirsiniz.

  1. Daha önce belirtildiği gibi WinForms veya WebForms için NuGet paketini yükleyin.

  2. Araç kutusunda listelenen Rapor Görüntüleyicisi Denetimini kaldırın.

    ReportViewer denetiminde Sil'i vurgulayan Visual Studio araç kutusunun ekran görüntüsü.

  3. Araç kutusunda herhangi bir yere sağ tıklayın ve Öğeleri Seç...'i seçin.

    Öğeleri Seç seçeneğini vurgulayan Visual Studio araç kutusunun ekran görüntüsü.

  4. .NET Framework Bileşenleri'ndeGözat seçeneğini seçin.

    .NET Framework Bileşenleri iletişim kutusundaki Gözat düğmesini vurgulayan Visual Studio'nun ekran görüntüsü.

  5. Yüklediğiniz NuGet paketinden Microsoft.ReportViewer.WinForms.dll veya Microsoft.ReportViewer.WebForms.dll seçin.

    Uyarı

    NuGet paketi projenizin çözüm dizinine yüklenir. Dll'nin yolu aşağıdakine benzer olacaktır: {Solution Directory}\packages\Microsoft.ReportingServices.ReportViewerControl.Winforms.{version}\lib\net40 veya {Solution Directory}\packages\Microsoft.ReportingServices.ReportViewerControl.WebForms.{version}\lib\net40.

  6. Yeni denetim araç kutusunda görüntülenmelidir. İsterseniz, araç kutusunun içindeki başka bir sekmeye taşıyabilirsiniz.

    Visual Studio araç kutusundaki yeni ReportViewer denetiminin ekran görüntüsü.

Yaygın sorunlar

Görüntüleyici denetimi modern tarayıcılar için tasarlanmıştır. Tarayıcı, sayfayı IE uyumluluk modunu kullanarak işlerse denetim beklendiği gibi çalışmayabilir. İntranet siteleri, varsayılan tarayıcı davranışını geçersiz kılmak için bir meta etiketi gerektirebilir.

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

NuGet.org sayfaları

Rapor Görüntüleyicisi denetiminin WebForm ve WinForm sürümleri hakkında NuGet.org sitesindeki makalelerin bağlantıları aşağıdadır:

Forum geri bildirimi

Raporlama Hizmetleri forumlarında ekibin sorunları bilmesini sağlayın.