L'integrazione di Reporting Services utilizzando i controlli ReportViewer - introduzioneIntegrating Reporting Services Using ReportViewer Controls - Get Started

Informazioni su come gli sviluppatori possono incorporare report impaginati in siti web ASP.Net e le applicazioni di Windows forms, tramite il controllo ReportViewer di Reporting Services 2016.Learn how developers can embed paginated reports in ASP.Net web sites, and Windows forms apps, through the Reporting Services 2016 ReportViewer Control. È possibile aggiungere il controllo a un progetto nuovo o aggiornare un progetto esistente.You can add the control to a new project, or update an existing project.

Aggiunta del controllo ReportViewer a un nuovo progetto webAdding the ReportViewer control to a new web project

  1. Creare un nuovo sito Web ASP.NET vuoto o aprire un progetto ASP.NET esistente.Create a new ASP.NET Empty Web Site or open an existing ASP.NET project.

    Creare-nuova-ASPNET-progetto ssRS

  2. Installare il pacchetto nuget di controllo ReportViewer 2016 tramite il console di gestione pacchetti Nuget.Install the ReportViewer 2016 control nuget package via the Nuget package manager console.

    Install-Package Microsoft.ReportingServices.ReportViewerControl.WebForms
    
  3. Aggiungere una nuova pagina aspx al progetto e registrare l'assembly del controllo ReportViewer per l'utilizzo all'interno della pagina.Add a new .aspx page to the project and register the ReportViewer control assembly for use within the page.

    <%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
    
  4. Aggiungere un ScriptManagerControl alla pagina.Add a ScriptManagerControl to the page.

  5. Aggiungere il controllo ReportViewer alla pagina.Add the ReportViewer control to the page. Nel frammento seguente può essere aggiornato per fare riferimento a un report ospitato in un server di report remoto.The snippet below can be updated to reference a report hosted on a remote report server.

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

Nella pagina finale dovrebbe essere simile al seguente.The final page should look like the following.

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

<%@ 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">
    <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="http://AContosoDepartment/ReportServer" ReportPath="/LatestSales" />
        </rsweb:ReportViewer>
    </form>
</body>
</html>

Aggiornamento di un progetto esistente per utilizzare il controllo ReportViewerUpdating an existing project to use the ReportViewer control

Per rendere l'utilizzo del controllo ReportViewer 2016 in un progetto esistente, aggiungere il controllo tramite Nuget e aggiornare i riferimenti all'assembly alla versione 14.0.0.0.To make use of the ReportViewer 2016 control in an existing project, add the control via Nuget and update the assembly references to version 14.0.0.0. Ciò include l'aggiornamento di Web. config del progetto e tutte le pagine aspx che fa riferimento il controllo ReportViewer.This will include updating the project's web.config and all .aspx pages that reference the ReportViewer control.

Modifiche di Web. config di esempioSample web.config changes

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

Esempio con estensione aspxSample .aspx

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

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

<!DOCTYPE html>

Aggiunta del controllo ReportViewer a un nuovo progetto Windows FormAdding the ReportViewer control to a new Windows forms project

  1. Creare un nuovo Windows Forms Application o aprire un progetto esistente.Create a new Windows Forms Application or open an existing project.

    Creare-nuova-winforms-progetto ssRS

  2. Installare il pacchetto nuget di controllo ReportViewer 2016 tramite il console di gestione pacchetti Nuget.Install the ReportViewer 2016 control nuget package via the Nuget package manager console.

    Install-Package Microsoft.ReportingServices.ReportViewerControl.WinForms
    
  3. Aggiungere un nuovo controllo dal codice o aggiungere il controllo della casella degli strumenti.Add a new control from code or add the control to the toolbox.

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

Come impostare l'altezza di 100% sul controllo Report Viewer 2016How to set 100% height on the Report Viewer 2016 control

Il nuovo controllo Report Viewer 2016 è ottimizzato per pagine in modalità standard di HTML5 e funziona su tutti i browser moderni.The new Report Viewer 2016 control is optimized for HTML5 Standards mode pages and works on all modern browsers. In passato, con il controllo RVC precedente, quando si imposta la proprietà height di 100%, funzionava anche se nessuno dei progenitori altezza specificata.In the past, with the old RVC control, when you set the 100% height property, it worked even if none of the ancestors had height specified. Questo comportamento è cambiato in HTML5.This behavior has changed in HTML5. Quando si imposta questa proprietà sul nuovo controllo RVC, funzionerà correttamente solo se l'elemento padre ha un'altezza definita, ad esempio, non un valore di auto o tutti i relativi predecessori RVC sono disponibili altezza 100%.When you set this property on the new RVC control, it will work correctly only if the parent element has a defined height, i.e. not a value of auto, or all the ancestors of RVC have 100% height too.

Di seguito sono i due esempi per eseguire questa operazione.Below are the two examples to do this.

Impostando l'altezza del padre tutti gli elementi al 100%By setting the height of all the parent elements to 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="http://test/ReportServer" ReportPath="/testreport" />
        </rsweb:ReportViewer>
    </div>
    </form>
</body>
</html>

Impostando l'attributo di stile altezza nell'elemento padre del controllo reportviewerBy setting the style height attribute on the parent of the reportviewer control

Per ulteriori informazioni sulle lunghezze percentuale viewport, vedere Viewport percentuale lunghezze.For more information about viewport percentage lengths, see Viewport-percentage lengths.

<!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="http://test/ReportServer" ReportPath="/testreport" />
        </rsweb:ReportViewer>
    </div>
    </form>
</body>
</html>

Aggiunta controllo alla barra degli strumenti di Visual StudioAdding control to Visual Studio toolbar

Il controllo Visualizzatore Report è ora disponibile come pacchetto NuGet.The Report Viewer Control is now shipped as a NuGet package. Per questo motivo, non noterai controllo Visualizzatore di Report visualizzati nella casella degli strumenti di Visual Studio per impostazione predefinita.Because of this, you will not see the Report Viewer Control show up in the Visual Studio toolbox by default. È possibile aggiungere il controllo alla casella degli strumenti nel modo seguente.You can add the control to the toolbox by doing the following.

  1. Installare il pacchetto NuGet per Windows Form o Web Form, come indicato in precedenza.Install the NuGet package for either the WinForms or WebForms as mentioned above.

  2. Rimuovere il controllo ReportViewer che è elencato nella casella degli strumenti.Remove the ReportViewer Control that is listed in the toolbox. Questo è il controllo con una versione di 12.x.This is the the control with a version of 12.x.

    ssRS-remove-vecchio-rvcontrol-della casella degli strumenti

  3. Fare clic in un punto qualsiasi nella casella degli strumenti e quindi selezionare Scegli elementi... .Right click in anywhere in the toolbox and then select Choose Items....

    ssRS--scegliere-elemento

  4. Nel componenti .NET Frameworkselezionare Sfoglia.On the .NET Framework Components, select Browse.

    ssRS: casella degli strumenti-Sfoglia

  5. Selezionare il Microsoft.ReportViewer.WinForms.dll o Microsoft.ReportViewer.WebForms.dll dal pacchetto NuGet è installato.Select the Microsoft.ReportViewer.WinForms.dll or Microsoft.ReportViewer.WebForms.dll from the NuGet package you installed.

    Nota

    Il pacchetto NuGet verrà installato nella directory della soluzione del progetto.The NuGet package will be installed in the solution directory of your project. Il percorso della DLL sarà simile al seguente: {Solution Directory}\packages\Microsoft.ReportingServices.ReportViewerControl.Winforms.{version}\lib\net40 o {Solution Directory}\packages\Microsoft.ReportingServices.ReportViewerControl.WebForms.{version}\lib\net40.The path to the dll will be similar to the following: {Solution Directory}\packages\Microsoft.ReportingServices.ReportViewerControl.Winforms.{version}\lib\net40 or {Solution Directory}\packages\Microsoft.ReportingServices.ReportViewerControl.WebForms.{version}\lib\net40.

  6. Il nuovo controllo deve essere visualizzato all'interno della casella degli strumenti.The new control should display within the toolbox. È possibile quindi spostarlo in un'altra scheda all'interno della casella degli strumenti se si desidera.You can then move it to another tab within the toolbox if you wish.

    ssRS: casella degli strumenti-rvcontrol

Aspetti da tenere presentiThings to be aware of

  • Verrà aggiunto un riferimento per il pacchetto NuGet installato all'interno del progetto corrente.This will add a reference to the installed NuGet package within your current project. L'elemento della casella degli strumenti verrà mantenuti in altri progetti.The item in the toolbox will persist to other projects. Quando si installa il pacchetto NuGet in un nuova soluzione/progetto, l'elemento della casella degli strumenti può fare riferimento a una versione precedente.When you install the NuGet package in a new solution/project, the toolbox item may be referencing an older version.

  • Il controllo rimane nella casella degli strumenti anche se l'assembly non è più disponibile.The control will remain in the toolbox even if the assembly is not available any longer. Se è stato eliminato il progetto, Visual Studio genererà un errore se si prova e aggiungere il controllo dalla casella degli strumenti.If that project was deleted, Visual Studio will throw an error if you try and add the control from the toolbox. Per correggere l'errore, rimuovere il controllo dalla casella degli strumenti e aggiungerlo di nuovo utilizzando la procedura descritta sopra.To correct this error, remove the control from the toolbox and re-add it using the steps above.

Problemi comuniCommon issues

  • Il controllo ReportViewer 2016 è progettato per essere utilizzato con i browser moderni.The ReportViewer 2016 control is designed to be used with modern browsers. Il controllo potrebbe non funzionare se browser esegue il rendering della pagina web in una modalità di compatibilità di Internet Explorer.The control may not function if browsers render the web page in an IE compatibility mode. I siti Intranet richieda un tag meta per sostituire le impostazioni che incoraggia la collaborazione il rendering di pagine intranet in modalità di compatibilità.Intranet sites may require a meta tag to override setting which encourage rendering intranet pages in compatibility mode.

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

Inviare commenti e suggerimentiProviding feedback

Informare il team sui problemi riscontrati con il controllo sul forum di Reporting Services MSDN o tramite posta elettronica al RVCFeedback@microsoft.com .Let the team know about issues you encounter with the control on the Reporting Services MSDN forums or via email at RVCFeedback@microsoft.com.

Vedere ancheSee also

Raccolta dei dati nel controllo ReportingViewer 2016Data collection in the 2016 ReportingViewer control
Ulteriori domande?More questions? Provare il forum di Reporting ServicesTry the Reporting Services forum