Integrare Reporting Services tramite SOAP - Applicazione Windows

È possibile accedere alle funzionalità complete del server di report tramite l'API SOAP di Reporting Services. 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. È possibile accedere al servizio Web in un'applicazione Windows semplicemente scrivendo codice che consenta di effettuare chiamate al servizio. Usando Microsoft .NET Framework, è possibile generare una classe proxy che espone le proprietà e i metodi del servizio Web. È quindi possibile usare un'infrastruttura e strumenti familiari per creare applicazioni aziendali basate sulla tecnologia Reporting Services.

Integrare la funzionalità Gestione report usando Windows Form

A differenza dell'accesso con URL, l'API SOAP espone il set completo di funzioni di gestione disponibili tramite il server di report. Questo significa che tutte le funzionalità amministrative di Gestione report sono disponibili per gli sviluppatori tramite SOAP. È pertanto possibile sviluppare uno strumento completo di gestione e amministrazione tramite Windows Form. Nell'applicazione Windows è ad esempio possibile consentire agli utenti di recuperare il contenuto dello spazio dei nomi del server di report. È possibile utilizzare il metodo del servizio ListChildren Web per elencare tutti gli elementi nel database del server di report e quindi utilizzare un controllo Listview, Treeview o Combobox per visualizzare tali elementi agli utenti. È possibile utilizzare il codice del servizio Web seguente per recuperare l'elenco corrente dei report disponibili nella cartella Report personali di un utente quando un utente seleziona un pulsante in un modulo:

' 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 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 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.

Abilitare la visualizzazione e lo spostamento dei report usando Windows Form

Per integrare i report nelle applicazioni Windows Form, sono disponibili due metodi.

È possibile utilizzare l'API SOAP per eseguire il rendering dei report in qualsiasi formato di rendering supportato utilizzando il metodo Render. L'abilitazione della visualizzazione e della navigazione dei report tramite SOAP presenta alcuni piccoli svantaggi:

  • Non è possibile sfruttare le funzionalità predefinite della barra degli strumenti del report inclusa nel Visualizzatore HTML tramite l'accesso tramite URL.

  • 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.

  • Il rendering dei report tramite l'accesso tramite URL tramite l'API SOAP è leggermente vantaggioso per le prestazioni.

È 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. Questo metodo è un vantaggio rispetto all'accesso tramite URL, che richiede l'interazione dell'utente. Quando si esegue il rendering di un report utilizzando il metodo Render dell'API SOAP, è possibile scegliere qualsiasi formato di output supportato.

È anche possibile usare i controlli Visualizzatore report distribuibili gratuitamente e inclusi in Microsoft Visual Studio 2008. I controlli Visualizzatore report consentono di incorporare in modo semplice le funzionalità di Reporting Services nelle applicazioni personalizzate. I controlli Visualizzatore report sono destinati agli sviluppatori che desiderano fornire report predefiniti e completamente creati come parte di un set di funzionalità dell'applicazione. Ad esempio, un'applicazione di gestione di siti Web potrebbe includere report che mostrano l'analisi di flusso click-stream nei siti Web aziendali. L'incorporamento dei controlli in un'applicazione costituisce un'alternativa efficace all'inclusione dei componenti server di Reporting Services nella distribuzione dell'applicazione. I controlli forniscono funzionalità di report, ma senza il supporto aggiuntivo per la creazione, la pubblicazione o la distribuzione e il recapito disponibili in Reporting Services.

Sono disponibili due versioni dei controlli Visualizzatore report: una versione per le applicazioni rich client Windows e una per le applicazioni ASP.NET. I controlli supportano sia la modalità di elaborazione locale che quella remota. In modalità di elaborazione locale l'applicazione fornisce la definizione e i set di dati del report e avvia l'elaborazione del report. 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. Questo modello consente di compilare applicazioni complete adatte per ambienti di qualsiasi dimensione, dal desktop all'azienda.

I controlli Visualizzatore report sono descritti nella Guida online di Visual Studio. Per ulteriori informazioni, vedere la documentazione del prodotto Visual Studio.

Compilazione di applicazioni tramite servizio Web e .NET Framework
Integrazione di Reporting Services nelle applicazioni
Uso dell'API SOAP in un'applicazione Web