Integrazione di Reporting Services tramite SOAP - Applicazione WindowsIntegrating Reporting Services Using SOAP - Windows Application

È possibile accedere alle funzionalità complete del server di report tramite l'API SOAP di Reporting Services.You can access the full functionality of the report server through the Reporting Services SOAP API. L'API SOAP è un servizio Web e, in quanto tale, è possibile accedervi in modo semplice per fornire caratteristiche di creazione di report aziendali alle applicazioni aziendali personalizzate.The SOAP API is a Web service and, as such, can be easily accessed to provide enterprise reporting features to your custom business applications. È possibile accedere al servizio Web in un'applicazione Windows semplicemente scrivendo codice che consenta di effettuare chiamate al servizio.You can access the Web service in a Windows application simply by writing code that makes calls to the service. Usando MicrosoftMicrosoft .NET Framework.NET Framework, è possibile generare una classe proxy che espone le proprietà e i metodi del servizio Web e consente di usare un'infrastruttura familiare e gli strumenti per compilare applicazioni aziendali basate sulla tecnologia Reporting ServicesReporting Services.Using the MicrosoftMicrosoft .NET Framework.NET Framework, you can generate a proxy class that exposes the properties and methods of the Web service and enables you to use a familiar infrastructure and tools to build business applications built on Reporting ServicesReporting Services technology.

Integrazione delle funzionalità di Gestione report tramite Windows FormIntegrating Report Management Functionality Using Windows Forms

A differenza dell'accesso con URL, l'API SOAP espone il set completo di funzioni di gestione disponibili tramite il server di report.Unlike URL access, the SOAP API exposes the complete set of management functions that are available through the report server. Questo significa che tutte le funzionalità amministrative di Gestione report sono disponibili per gli sviluppatori tramite SOAP.This means that the entire administrative functionality of Report Manager is available to developers through SOAP. È pertanto possibile sviluppare uno strumento completo di gestione e amministrazione tramite Windows Form.As such, you can develop a complete management and administration tool using Windows Forms. Nell'applicazione Windows è ad esempio possibile consentire agli utenti di recuperare il contenuto dello spazio dei nomi del server di report.For example, in your Windows application, you might want to enable your users to retrieve the contents of the report server namespace. A tale scopo, è possibile utilizzare il metodo ListChildren del servizio Web per elencare tutti gli elementi del database del server di report, quindi utilizzare un controllo Listview, Treeview o Combobox per consentire agli utenti di visualizzare tali elementi.To do this, you could use the Web service ListChildren method to list all the items in the report server database and then use a Listview, Treeview, or Combobox control to display those items to your users. Il codice del servizio Web seguente potrebbe essere utilizzato per recuperare l'elenco corrente di report disponibili nella cartella My Reports di un utente quando un utente fa clic su un pulsante in un modulo:The following Web service code might be used to retrieve the current list of available reports in a user's My Reports folder when a user clicks a button on a form:

' Button click event that retrieves a list of reports from  
' the My Reports folder and displays them in a combo box  
Private Sub listReportsButton_Click(sender As Object, e As System.EventArgs)  
   ' Create a new Web service object and set credentials  
   ' to Windows Authentication  
   Dim rs As New ReportingService2010()  
   rs.Credentials = System.Net.CredentialCache.DefaultCredentials  

   ' Return the list of items in My Reports  
   Dim items As CatalogItem() = rs.ListChildren("/Adventureworks 2008 Sample Reports", False)  

   Dim ci As CatalogItem  
   For Each ci In  items  
      ' If the item is a report, add it to   
      ' a combo box  
      If ci.TypeName = "Report" Then  
         catalogComboBox.Items.Add(ci.Name)  
      End If  
   Next ci  
End Sub 'listReportsButton_Click  
// Button click event that retrieves a list of reports from  
// the My Reports folder and displays them in a combo box  
private void listReportsButton_Click(object sender, System.EventArgs e)  
{  
   // Create a new Web service object and set credentials  
   // to Windows Authentication  
   ReportingService2010 rs = new ReportingService2010();  
   rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  

   // Return the list of items in My Reports  
   CatalogItem[] items = rs.ListChildren("/Adventureworks 2008 Sample Reports", false);  

   foreach (CatalogItem ci in items)  
   {  
      // If the item is a report, add it to   
      // a combo box  
      if (ci.TypeName == "Report")  
         catalogComboBox.Items.Add(ci.Name);  
   }  
}  

È quindi possibile consentire agli utenti di selezionare il report dalla casella combinata e di visualizzare in anteprima il report nel form utilizzando un controllo browser o immagine.From there, you might enable users to select the report from the Combo box and preview the report on the form either using a Web browser control or an image control.

Abilitazione della visualizzazione e della navigazione dei report tramite Windows FormEnabling Report Viewing and Navigation Using Windows Forms

Per integrare i report nelle applicazioni Windows Form, sono disponibili due metodi.There are two methods available for integrating reports into your Windows Forms applications.

È possibile utilizzare l'API SOAP per eseguire il rendering dei report in qualsiasi formato di rendering supportato utilizzando il metodo Render.You can use the SOAP API to render reports to any of the supported rendering formats using the Render method. L'abilitazione della visualizzazione e della navigazione dei report tramite SOAP presenta alcuni piccoli svantaggi:There are slight disadvantages to enabling report viewing and navigation through SOAP:

  • Non è possibile utilizzare le funzionalità predefinite della barra degli strumenti dei report disponibili nel Visualizzatore HTML tramite accesso con URL.You cannot take advantage of the built-in functionality of the report toolbar that is included with the HTML Viewer through URL access.

  • Se si esegue il rendering in formato HTML, è necessario eseguire separatamente il rendering di qualsiasi immagine o risorsa come flusso aggiuntivo utilizzando il metodo RenderStream.If you render to HTML, you must separately render any images or resources as additional streams using the RenderStream method.

  • Il rendering di report tramite l'accesso con URL offre prestazioni leggermente migliori rispetto all'utilizzo dell'API SOAP.There is a slight performance advantage to rendering reports using URL access over using the SOAP API.

    È tuttavia possibile utilizzare il metodo Render dell'API SOAP per eseguire il rendering dei report e salvarli in diversi formati di output a livello di programmazione.However, the Render method of the SOAP API can be used to render reports and save them to various output formats programmatically. Questo è un vantaggio rispetto all'accesso con URL, che richiede l'interazione dell'utente.This is an advantage over URL access, which requires user interaction. Quando si esegue il rendering di un report utilizzando il metodo Render dell'API SOAP, è possibile scegliere qualsiasi formato di output supportato.When you render a report using the SOAP API Render method, you can render to any of the supported output formats.

    È anche possibile usare gratuitamente i controlli ReportViewer distribuibili inclusi in MicrosoftMicrosoft Visual Studio 2008Visual Studio 2008.You can also use the freely distributable ReportViewer controls that are included with MicrosoftMicrosoft Visual Studio 2008Visual Studio 2008. I controlli ReportViewer consentono di incorporare in modo semplice le funzionalità di Reporting ServicesReporting Services nelle applicazioni personalizzate.The ReportViewer controls make it easy to embed Reporting ServicesReporting Services functionality into custom applications. Tali controlli sono destinati agli sviluppatori che desiderano fornire report predefiniti e completi come parte del set di caratteristiche di un'applicazione. Un'applicazione di gestione di un sito Web può ad esempio includere report relativi a un'analisi clickstream nei siti Web aziendali.The ReportViewer controls are intended for developers who want to provide predesigned, fully authored reports as part of an application feature set (for example, a Web site management application might include reports that show click-stream analysis on company Web sites). L'incorporamento dei controlli in un'applicazione costituisce un'alternativa efficace all'inclusione dei componenti server di Reporting ServicesReporting Services nella distribuzione dell'applicazione.Embedding the controls in an application provides a streamlined alternative to including the Reporting ServicesReporting Services server components in your application deployment. I controlli forniscono funzionalità per i report, ma senza il supporto aggiuntivo per la creazione, la pubblicazione o la distribuzione e il recapito di report, disponibile in Reporting ServicesReporting Services.The controls provide report functionality, but without the additional report authoring, publication, or distribution and delivery support that you find in Reporting ServicesReporting Services.

    Sono disponibili due versioni dei controlli ReportViewer: una versione per le applicazioni rich client Windows e una per le applicazioni ASP.NETASP.NET.There are two versions of the ReportViewer controls, one for rich Windows client applications and one for ASP.NETASP.NET applications. I controlli supportano sia la modalità di elaborazione locale che quella remota.The controls support both local processing and remote processing modes. In modalità di elaborazione locale l'applicazione fornisce la definizione e i set di dati del report e avvia l'elaborazione del report.In local processing mode, your application provides the report definition and datasets and triggers report processing. In modalità di elaborazione remota il recupero dei dati e l'elaborazione del report vengono eseguiti nel server di report e il controllo viene utilizzato per visualizzare e navigare il report.In remote processing mode, data retrieval and report processing happen on the report server and the control is used for display and report navigation. Questo modello consente di compilare applicazioni complete adatte per ambienti di qualsiasi dimensione, dal desktop all'azienda.This model allows you to build rich applications that can be scaled from desktop to the enterprise.

    I controlli ReportViewer sono descritti nella Guida online di Visual StudioVisual Studio.ReportViewer controls are documented in Visual StudioVisual Studio online Help. Per ulteriori informazioni, vedere la documentazione di Visual StudioVisual Studio.For more information, see the Visual StudioVisual Studio product documentation.

Vedere ancheSee Also

Compilazione di applicazioni tramite servizio Web e .NET Framework Building Applications Using the Web Service and the .NET Framework
Integrazione di Reporting Services nelle applicazioni Integrating Reporting Services into Applications
Uso dell'API SOAP in un'applicazione WebUsing the SOAP API in a Web Application