Integreer Reporting Services door gebruik te maken van SOAP - Windows-applicatie

Je kunt de volledige functionaliteit van de rapportserver bereiken via de Reporting Services SOAP API. De SOAP API is een webservice en kan daarom eenvoudig worden gebruikt om enterprise-rapportagefuncties te bieden aan uw aangepaste zakelijke applicaties. Je kunt de webservice in een Windows-applicatie simpelweg bereiken door code te schrijven die aanroepen naar de service doet. Door gebruik te maken van het Microsoft .NET Framework kun je een proxyklasse genereren die de eigenschappen en methoden van de webservice blootstelt. Je kunt vervolgens een vertrouwde infrastructuur en tools gebruiken om bedrijfsapplicaties te bouwen die zijn gebaseerd op Reporting Services-technologie.

Integreer de functionaliteit van Rapportbeheer met Windows Forms

In tegenstelling tot URL-toegang biedt de SOAP API de volledige set beheerfuncties die beschikbaar zijn via de rapportserver. Dit betekent dat de volledige administratieve functionaliteit van Report Manager beschikbaar is voor ontwikkelaars via SOAP. Zo kun je een complete beheer- en beheertool ontwikkelen met Windows Forms. In je Windows-applicatie wil je bijvoorbeeld gebruikers in staat stellen de inhoud van de rapportservernaamruimte op te halen. Je kunt de webservicemethode ListChildren gebruiken om alle items in de database van de rapportserver te vermelden en vervolgens een Listview-, Treeview- of Combobox-controle gebruiken om die items aan je gebruikers te tonen. De volgende webservicecode kan worden gebruikt om de huidige lijst van beschikbare rapporten in de Mijn Rapporten-map van een gebruiker op te halen wanneer een gebruiker een knop op een formulier selecteert:

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

Vanaf daar kun je gebruikers toestaan het rapport te selecteren in het Combo-vakje en het rapport op het formulier te bekijken, hetzij met een webbrowserbediening of een afbeeldingscontrole.

Schakel Rapportageweergave en navigatie in met Windows Forms

Er zijn twee methoden beschikbaar om rapporten te integreren in je Windows Forms-applicaties.

Je kunt de SOAP API gebruiken om rapporten te renderen naar elk van de ondersteunde renderingsformaten met deze Render methode. Er zijn kleine nadelen aan het inschakelen van rapportageweergave en navigatie via SOAP:

  • Je kunt niet profiteren van de ingebouwde functionaliteit van de rapportwerkbalk die bij de HTML Viewer is inbegrepen via URL-toegang.

  • Als je rendert naar HTML, moet je afbeeldingen of bronnen apart als extra streams renderen met de RenderStream methode.

  • Er is een klein prestatievoordeel aan het renderen van rapporten met URL-toegang ten opzichte van de SOAP API.

De methode van de SOAP API kan echter Render worden gebruikt om rapporten programmatisch te renderen en op te slaan in verschillende uitvoerformaten. Deze methode is een voordeel ten opzichte van URL-toegang, die gebruikersinteractie vereist. Wanneer je een rapport rendert met de SOAP API-methode Render , kun je renderen naar elk van de ondersteunde uitvoerformaten.

Je kunt ook de vrij distributiebare Report Viewer-besturing gebruiken die bij Microsoft Visual Studio 2008 zijn inbegrepen. De Report Viewer-besturing maakt het eenvoudig om Reporting Services-functionaliteit in aangepaste applicaties in te sluiten. De Report Viewer-besturingen zijn bedoeld voor ontwikkelaars die vooraf ontworpen, volledig geschreven rapporten willen leveren als onderdeel van een applicatiefunctieset. Een websitebeheerapplicatie kan bijvoorbeeld rapporten bevatten die klikstroomanalyses op bedrijfswebsites tonen. Het inbedden van de besturingselementen in een applicatie biedt een gestroomlijnd alternatief voor het opnemen van de Reporting Services-servercomponenten in je applicatie-implementatie. De controles bieden rapportagefunctionaliteit, maar zonder de extra ondersteuning voor het schrijven, publiceren of verspreiden en leveren van rapporten die je vindt in Reporting Services.

Er zijn twee versies van de Report Viewer-besturingselementen, één voor rijke Windows-clientapplicaties en één voor ASP.NET-applicaties. De bedieningselementen ondersteunen zowel lokale verwerking als externe verwerkingsmodi. In lokale verwerkingsmodus levert uw applicatie de rapportdefinitie en datasets en activeert rapportverwerking. In de remote processing-modus vinden gegevensopvraging en rapportageverwerking plaats op de rapportserver en wordt de bediening gebruikt voor weergave en rapportagenavigatie. Dit model stelt je in staat om uitgebreide applicaties te bouwen die van desktop naar enterprise kunnen worden opgeschaald.

De besturing van Report Viewer is gedocumenteerd in Visual Studio Online Help. Voor meer informatie, zie de productdocumentatie van Visual Studio.