A noterCet article s'applique à un système d'exploitation différent de celui que vous utilisez. Le contenu de l'article qui ne vous concerne peut-être pas est désactivé.
Cet article décrit étape par étape comment utiliser ASP.NET pour créer un service Web XML simple qui extrait des données de l'exemple de base de données Comptoirs de Microsoft Access et retourne les données au format XML à un client lorsque ce dernier appelle une méthode du service. Côté client, les données sont présentées à l'aide des composants Tableau croisé dynamique et Graphique. Cet article démontre également comment créer un client pour le service Web XML à l'aide de Visual Basic .NET ou de Visual Basic 6.0.
Création d'un service Web XML simple à l'aide d'ASP.NET
Démarrez Visual Studio. NET.
Dans le menu Fichier, cliquez sur Nouveau, puis sur Projet. Sous Types de projets, cliquez sur Projets Visual Basic, puis sur Service Web ASP.NET sous Modèles. Form1 est créé par défaut.
Remplacez Emplacement par http://localhost/MyDataService et cliquez sur OK. Le projet de service Web XML est créé sur l'ordinateur local sous le nom MyDataService. Class Service1, qui hérite de System.Web.Services.WebService, est créé par défaut dans le fichier Service1.asmx.
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Service1.asmx, puis sélectionnez Afficher le code. Cette opération affiche le fichier code-behind de la page .asmx.
Ajoutez une référence à Microsoft ActiveX Data Objects 2.1 Library. Pour cela, procédez comme suit :
Dans le menu Projet, cliquez sur Ajouter une référence.
Cliquez sur l'onglet COM, sélectionnez Microsoft ActiveX Data Objects 2.7 Library, cliquez sur Sélectionner, puis sur OK.
Ajoutez la méthode suivante à la classe Class Service1 :
<WebMethod()> Public Function GetResultsAsAdoXML() As String
Dim myAdoRs As ADODB.Recordset
Dim myAdoConnection As New ADODB.Connection()
Dim mypersiststream As New ADODB.Stream()
Dim myConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
"C:\Program Files\Microsoft Office\Office10\Samples\Northwind.mdb"
Dim mySelect As String = "SELECT * from [Category Sales for 1997]"
myAdoConnection.ConnectionString = myConnectionString
myAdoConnection.Open()
myAdoRs = myAdoConnection.Execute(mySelect)
myAdoRs.Save(mypersiststream, ADODB.PersistFormatEnum.adPersistXML)
Return mypersiststream.ReadText
End Function
Remarque Si vous n'avez pas installé Office XP dans le dossier par défaut (C:\Program Files\Microsoft Office), modifiez la chaîne de connexion dans le code afin qu'elle indique le chemin d'accès correct à votre installation Office. De même, si vous avez installé Office 2003, vous devrez peut-être modifier le chemin en conséquence.
Dans le menu Générer, cliquez sur Générer la solution afin de créer le service Web XML.
Dans le menu Déboguer, cliquez sur Démarrer. Microsoft Internet Explorer démarre puis accède au fichier Service1.asmx.
Cliquez sur le lien hypertexte GetResultsAsAdoXML.
Cliquez sur Appeler afin de tester l'appel de méthode. Une nouvelle fenêtre affiche les résultats de la requête Category Sales for 1997 au format de schéma de rowset XML. Le document XML de rowset est compris dans l'élément string.
Dans le menu Déboguer de Visual Studio .NET, cliquez sur Arrêter le débogage.
Cette section explique comment créer un client pour la consommation du service Web XML MyDataService. Vous pouvez créer votre client à l'aide de Visual Basic 6.0 ou de Visual Basic .NET.
À des fins de démonstration, les étapes suivantes expliquent comment créer le client test sur le même ordinateur que le service Web XML. Toutefois, vous pouvez créer vos clients tests sur tout ordinateur pouvant accéder au fichier WSDL (Web Services Description Language) présenté par le service Web.
Utilisation de Visual Basic .NET
Créez un projet d'application Windows Visual Basic .NET. Form1 est créé par défaut.
Appuyez sur CTRL+ALT+X pour afficher la fenêtre Boîte à outils.
Dans le menu Outils, cliquez sur Personnaliser la boîte à outils. Sélectionnez les éléments suivants dans la liste de composants et cliquez sur OK :
Microsoft Office Chart 10.0
Microsoft Office Data Source Control 10.0
Microsoft Office PivotTable 10.0
Les icônes des composants s'affichent dans la Boîte à outils.
Ajoutez un contrôle Chart (Graphique), un contrôle PivotTable (Tableau croisé dynamique) et un contrôle Data Source (Source de données) dans Form1. Redimensionnez et positionnez le formulaire si nécessaire.
Ajoutez un contrôle Button (Bouton) dans Form1, puis définissez la propriété Text (Texte) de ce contrôle sur Fill Data (Remplir de données).
Ajoutez une référence au service Web XML en exemple. Pour cela, procédez comme suit :
Dans le menu Projet, cliquez sur Ajouter une référence Web. La boîte de dialogue Ajouter une référence Web s'affiche.
Dans la zone de texte Adresse, tapez http://hôte_local/MyDataService/Service1.asmx?wsdl et appuyez sur ENTRÉE. Le fichier WSDL s'affiche dans la boîte de dialogue.
Remarque : Si MyDataService ne se trouve pas sur l'ordinateur local, remplacez hôte_local dans l'adresse par le nom du serveur Web sur lequel se trouve MyDataService.
Dans la boîte de dialogue, cliquez sur Ajouter une référence.
Double-cliquez sur le contrôle Button (Bouton) dans Form1, puis remplacez le gestionnaire Button1_Click par le code suivant :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Reference to the service.
Dim objClient As New localhost.Service1()
'Result obtained from the Service method.
Dim strresult As String
'The results will be stored on this disk file.
Dim datafile As String
datafile = System.IO.Directory.GetCurrentDirectory() + "\\mydata.xml"
'Call the Web service method GetResultsAsAdoXML, which returns the recordset as XML.
strresult = objClient.GetResultsAsAdoXML()
Dim oxmldoc As New System.Xml.XmlDocument()
'Load the XML recordset into the XML Document object.
oxmldoc.LoadXml (strresult)
'Save it to disk file.
oxmldoc.Save (datafile)
'Get data in the DataSource component.
If Len(AxDataSourceControl1.ConnectionString) = 0 Then
AxDataSourceControl1.ConnectionString = "provider=mspersist"
AxDataSourceControl1.RecordsetDefs.AddNew( _
datafile, AxDataSourceControl1.Constants.dscCommandFile, "ChartData")
End If
'Get data in Chart component.
Dim c
Dim cht As OWC10.ChChart
Dim ser As OWC10.ChSeries
Dim ax As OWC10.ChAxis
c = AxChartSpace1.Constants
' Clear the ChartSpace.
AxChartSpace1.Clear()
'DataSource to the Chart component.
AxChartSpace1.DataSource = AxDataSourceControl1.DefaultRecordset.DataSource
'Get the reference to Chart within the ChartSpace component.
cht = AxChartSpace1.Charts(0)
cht.Type = c.chChartTypeBarStacked
cht.HasLegend = True
cht.Legend.Position = c.chLegendPositionTop
cht.HasTitle = True
cht.Title.Caption = "Category Sales for 1997"
'Set the Chart data.
AxChartSpace1.SetData(OWC10.ChartDimensionsEnum.chDimCategories, 0, "CategoryName")
AxChartSpace1.SetData(OWC10.ChartDimensionsEnum.chDimValues, 0, "CategorySales")
ax = cht.Axes(c.chAxisPositionBottom)
'Set the series attributes.
ser = cht.SeriesCollection(0)
ser.Name = "Category Sales"
ser.Caption = ser.Name
ser.Marker.Size = 4
'Get Data in the PivotTable component.
Dim pview As OWC10.PivotView
AxPivotTable1.AutoFit = True
AxPivotTable1.ConnectionString = "provider=mspersist"
AxPivotTable1.CommandText = datafile
pview = AxPivotTable1.ActiveView
pview.AutoLayout()
pview.FilterAxis.Label.Visible = False
pview.RowAxis.Label.Visible = False
pview.ColumnAxis.Label.Visible = False
pview.TitleBar.Visible = False
End Sub
Remarque Si le service Web XML se trouve sur un ordinateur distinct, déclarez la variable objClient comme suit :
Dim objClient As New <servername>.Service1()
où servername est le nom du serveur sur lequel se trouve le service Web XML.
Remarque Si vous utilisez Office 2003, vous devrez peut-être modifier les références en conséquence.
Ajoutez le code suivant au début de Form1.vb :
Imports OWC10 = Microsoft.Office.Interop.OWC
Dans le menu Déboguer, cliquez sur Démarrer pour générer et exécuter le programme client. Form1 s'affiche.
Cliquez sur Fill Data (Remplir de données) afin de présenter les données dans les contrôles Chart (Graphique) et PivotTable (Tableau croisé dynamique).
Utilisation de Visual Basic 6.0
Les services Web XML communiquent avec des clients au moyen de messages SOAP (Simple Object Access Protocol). Si l'application cliente est prise en charge par SOAP, elle peut appeler les méthodes qui sont présentées par le service Web XML. Il n'est pas nécessaire que Visual Studio .NET soit installé sur les ordinateurs clients pour l'appel de méthodes sur le service Web XML. Le client doit avoir la possibilité de composer des appels de méthode de service Web XML sous la forme de requêtes SOAP et de recevoir les résultats de ces appels de méthode sous la forme de réponses SOAP. SOAP Toolkit vous permet d'effectuer cela.
Pour plus d'informations sur SOAP Toolkit, y compris des instructions de téléchargement, reportez-vous au site Web de Microsoft Developer Network (MSDN) à l'adresse suivante :
Pour créer un client test Visual Basic 6.0 test client pour la consommation de méthodes dans le service Web XML MyDataService, procédez comme suit :
Remarque Pour ce test client, SOAP Toolkit 2.0 Service Pack 2 doit être installé sur l'ordinateur.
Démarrez Visual Basic 6.0 et créez un nouveau projet EXE standard. Form1 est créé par défaut.
Dans le menu Projet, cliquez sur Références. Ajoutez les références suivantes au projet :
Microsoft Soap Type Library
Microsoft XML, v3.0
Dans le menu Projet, cliquez sur Composants. Sélectionnez Microsoft Office XP Web Components, puis cliquez sur OK.
Ajoutez les composants Office Web Components suivants dans Form1 :
Microsoft Office Chart 10.0
Microsoft Office Data Source Control 10.0
Microsoft Office PivotTable 10.0
Ajoutez un contrôle CommandButton (Bouton de commande) dans Form1, puis définissez la propriété Caption (Légende) de ce contrôle sur Fill Data (Remplir de données).
Double-cliquez sur le contrôle CommandButton (Bouton de commande) dans Form1, puis remplacez le gestionnaire Command1_Click par le code suivant :
Private Sub Command1_Click()
Dim osoapClient As MSSOAPLib.SoapClient
'Initialize the SOAP client object.
Set osoapClient = CreateObject("MSSOAP.SoapClient")
osoapClient.mssoapinit "http://localhost/MyDataService/Service1.asmx?wsdl", "Service1", "Service1Soap"
'DOM object to load the results.
Dim oXMLDoc As New MSXML2.DOMDocument
Dim strdirname As String
'File to store XML recordset.
strdirname = FileSystem.CurDir$ + "\mydata.xml"
Dim strxmlrecordset As String
'Call the WebService method.
strxmlrecordset = osoapClient.GetResultsAsAdoXML()
'Load the XML in the DOM document.
oXMLDoc.loadXML strxmlrecordset
'Save it to the disk file.
oXMLDoc.Save (strdirname)
'Get the data into the DataSourceControl1 component.
If Len(DataSourceControl1.ConnectionString) = 0 Then
DataSourceControl1.ConnectionString = "provider=mspersist"
' Add a RecordsetDef with name ChartData to the DataSourceControl1
DataSourceControl1.RecordsetDefs.AddNew strdirname, DataSourceControl1.Constants.dscCommandFile, "ChartData"
End If
'Get the Data into the Chart component.
Dim c
Dim cht As ChChart
Dim chart1 As ChChart
Dim ser As ChSeries
Dim ax As ChAxis
Set c = ChartSpace1.Constants
ChartSpace1.Clear
'DataSource to the Chart component.
ChartSpace1.DataSource = DataSourceControl1.DefaultRecordset.DataSource
' Draw the chart.
Set cht = ChartSpace1.Charts(0)
cht.Type = c.chChartTypeBarStacked
cht.HasLegend = True
cht.Legend.Position = c.chLegendPositionTop
cht.HasTitle = True
cht.Title.Caption = "Category Sales for 1997"
'Set the chart data.
ChartSpace1.SetData chDimCategories, 0, "CategoryName"
ChartSpace1.SetData chDimValues, 0, "CategorySales"
' Set the tick label spacing depending on the number of points plotted.
Set ax = cht.Axes(c.chAxisPositionBottom)
'Set the series attributes.
Set ser = cht.SeriesCollection(0)
ser.Name = "Category Sales"
ser.Caption = ser.Name
ser.Marker.Size = 4
'Get the data into the PivotTable.
PivotTable1.ConnectionString = "provider=mspersist"
PivotTable1.CommandText = strdirname
PivotTable1.AutoFit = True
Set pview = PivotTable1.ActiveView
pview.AutoLayout
pview.FilterAxis.Label.Visible = False
pview.RowAxis.Label.Visible = False
pview.ColumnAxis.Label.Visible = False
pview.TitleBar.Visible = False
End Sub
Remarque Si le service Web XML se trouve sur un ordinateur distinct, remplacez localhost dans l'adresse du service Web XML par le nom du serveur sur lequel se trouve ce service Web XML.
Appuyez sur F5 pour générer et exécuter le programme. Form1 s'affiche.
Cliquez sur Fill Data (Remplir de données) afin de présenter les données dans les composants Chart et PivotTable.
Pour plus d'informations sur les services Web XML créés à l'aide de ASP.NET, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
301273
(http://support.microsoft.com/kb/301273/
)
Comment faire pour écrire un service Web simple à l'aide de Visual Basic .NET.
Pour plus d'informations sur les services Web XML créés à l'aide de ASP.NET, consultez la rubrique « Programming the Web with Web Services » (Programmation du Web à l'aide de Services Web, en anglais) dans l'aide de Visual Studio .NET ou la section « ASP.NET Web Services and ASP.NET Web Service Clients » (Services Web ASP.NET et clients du service Web ASP.NET, en anglais) dans le manuel « Microsoft .NET Framework Developer's Guide » (Guide du développeur de Microsoft .NET Framework, en anglais).
Pour plus d'informations sur les notions de base des services Web et sur les services Web XML créés à l'aide de ASP.NET, reportez-vous au site Web Microsoft Developer Network (MSDN) à l'adresse suivante :
Pour plus d'informations sur le développement de Microsoft Office avec Visual Studio et sur Office XP Web Components, reportez-vous au site Web MSDN à l'adresse suivante :
Pour plus d'informations sur Office XP Web Components, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft.
286212
(http://support.microsoft.com/kb/286212/
)
Comment faire pour utiliser une source de données XML avec le composant Office Chart
235542
(http://support.microsoft.com/kb/235542/
)
Comment faire pour utiliser le composant PivotTable Office Web avec Visual Basic
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Ces informations vous ont-elles aidé ?
Oui
Non
Plutôt
Quel niveau d'effort avez-vous dû personnellement fournir pour utiliser cet article ?
Très faible
Faible
Moyen
Elevé
Très élevé
Dites-nous pourquoi et ce que nous pouvons faire pour améliorer ces informations.
Merci ! Vos commentaires sont très utiles pour l'amélioration de notre contenu d'aide et de support. Si vous avez besoin d'aide complémentaire, veuillez consulter la page d'accueil d'aide et support.