Share via


Utilisation de l'API SOAP dans une application Windows

Vous pouvez accéder aux fonctionnalités complètes du serveur de rapports via l'API SOAP de Reporting Services. L'API SOAP est un service Web et, en tant que tel, est facilement accessible afin de fournir des fonctionnalités de création de rapports d'entreprise à vos applications de gestion personnalisées. Pour accéder au service Web dans une application Windows, il suffit d'écrire un code qui permet d'appeler le service. À l'aide du Microsoft .NET Framework, vous pouvez générer une classe proxy qui expose les propriétés et méthodes du service Web et vous permet d'utiliser une infrastructure et des outils familiers pour générer des applications de gestion basées sur la technologie Reporting Services.

Intégration de fonctionnalités de gestion de rapports à l'aide de Windows Forms

Contrairement à l'accès URL, l'API SOAP expose le jeu complet des fonctions de gestion qui sont disponibles via le serveur de rapports. Cela signifie que toutes les fonctionnalités d'administration du Gestionnaire de rapports sont disponibles pour les développeurs via SOAP. Ainsi, vous pouvez développer un outil de gestion et d'administration complet à l'aide de Windows Forms. Par exemple, dans votre application Windows, vous pouvez souhaiter permettre à vos utilisateurs d'extraire le contenu de l'espace de noms du serveur de rapports. Pour cela, vous pouvez utiliser la méthode ListChildren du service Web pour répertorier tous les éléments contenus dans la base de données du serveur de rapports, puis utiliser un contrôle ListView, TreeView ou ComboBox pour présenter ces éléments à vos utilisateurs. Vous pouvez utiliser le code de service Web suivant pour extraire la liste actuelle des rapports disponibles dans le dossier Mes rapports d'un utilisateur lorsqu'il clique sur un bouton sur un formulaire :

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

À partir de là, vous pouvez permettre aux utilisateurs de sélectionner le rapport dans la liste déroulante afin de le prévisualiser sur le formulaire à l'aide d'un contrôle de navigateur Web ou d'un contrôle Image.

Activation de la consultation des rapports et de la navigation à l'aide de Windows Forms

Il existe deux méthodes disponibles pour intégrer des rapports dans vos applications Windows Forms.

Vous pouvez utiliser l'API SOAP pour effectuer le rendu des rapports dans tous les formats de rendu pris en charge à l'aide de la méthode Render. Il existe de légers inconvénients à l'activation de la consultation des rapports et de la navigation via SOAP :

  • Vous ne pouvez pas tirer parti des fonctionnalités intégrées de la barre d'outils Rapports incluse dans la Visionneuse HTML via l'accès URL.

  • Si vous effectuez un rendu au format HTML, vous devez effectuer le rendu des images ou ressources séparément en tant que flux supplémentaires à l'aide de la méthode RenderStream.

  • Il existe un léger avantage, en termes de performances, en faveur du rendu de rapports à l'aide de l'accès URL plutôt qu'à l'aide de l'API SOAP.

Toutefois, la méthode Render de l'API SOAP peut être utilisée pour effectuer le rendu de rapports et les enregistrer sous divers formats de sortie par programme. Il s'agit d'un avantage par rapport à l'accès URL, qui requiert l'intervention de l'utilisateur. Lorsque vous effectuez le rendu d'un rapport à l'aide de la méthode Render de l'API SOAP, vous pouvez le faire dans tous les formats de sortie pris en charge.

Vous pouvez également utiliser les contrôles ReportViewer en distribution libre inclus dans Microsoft Visual Studio 2008. Les contrôles ReportViewer facilitent l'incorporation de fonctionnalités Reporting Services dans les applications personnalisées. Les contrôles ReportViewer sont destinés aux développeurs qui souhaitent fournir des rapports prédéfinis et entièrement créés dans un ensemble de fonctionnalités d'une application (par exemple, une application de gestion de sites Web peut contenir des rapports qui comportent une analyse du parcours des internautes sur les sites Web de sociétés). L'incorporation des contrôles dans une application offre une solution plus rationnelle que l'ajout de composants serveur Reporting Services dans le déploiement de votre application. Les contrôles offrent les fonctionnalités des rapports sans la prise en charge de la création, de la publication, de la distribution et de la fourniture qu'offre Reporting Services.

Il existe deux versions des contrôles ReportViewer : une version est destinée aux applications clientes Windows, l'autre aux applications ASP.NET. Les contrôles prennent en charge les modes de traitement local et distant. En mode de traitement local, votre application fournit la définition de rapport et les datasets et déclenche le traitement des rapports. En mode de traitement distant, la récupération des données et le traitement des rapports sont effectués sur le serveur de rapports et le contrôle est utilisé à des fins d'affichage et de navigation dans les rapports. Ce modèle vous permet de créer des applications puissantes à l'échelle d'un Bureau ou d'une entreprise.

Les contrôles ReportViewer sont décrits dans l'aide en ligne de Visual Studio. Pour plus d'informations, consultez la documentation produit de Visual Studio.