Identificativo articolo: 315695 - Ultima modifica: giovedì 29 marzo 2007 - Revisione: 5.4

Come utilizzare Office Web Components con dati XML generati da un servizio Web XML creati utilizzando ASP.NET

Suggerimento di sistemaIl presente articolo fa riferimento a un sistema operativo diverso da quello in uso. Il contenuto dell'articolo che potrebbe non essere relativo al sistema in uso è disabilitato.

In questa pagina

Espandi tutto | Chiudi tutto

Sommario

In questo articolo viene descritto come utilizzare ASP.NET per creare un servizio Web XML semplice che recupera i dati di Microsoft Access database di esempio restituendo i dati come XML a un client quando il client chiama un metodo del servizio. Sul lato client, presentazione dei dati con i componenti tabella pivot di Office e il grafico. In questo articolo viene inoltre illustrato come creare un client per il servizio Web XML con Visual Basic .NET o Visual Basic 6.0.

Creare un semplice servizio Web XML tramite ASP.NET

  1. Avviare Visual Studio. RETE.
  2. Dal menu file , fare clic su Nuovo e quindi fare clic su progetto . In Tipi progetto scegliere Progetti di Visual Basic , quindi il Servizio Web ASP.NET in base a
  3. modelli . In base all'impostazione predefinita, viene creato il progetto Form1.
  4. Modificare il percorso per http://localhost/MyDataService e scegliere OK . Il progetto di servizio Web XML viene creato sul computer locale con il nome MyDataService. Per impostazione predefinita nel file Service1.asmx, la Classe Service1 , che eredita da System.Web.Services.WebService , viene creato.
  5. In Esplora soluzioni, fare clic con il pulsante destro del mouse su Service1.asmx e quindi selezionare Visualizza codice . Verrà visualizzata il file code-behind per la pagina ASMX.
  6. Aggiungere un riferimento a Microsoft ActiveX Data Objects library. Per effettuare questa operazione, attenersi alla seguente procedura:
    1. Scegliere Aggiungi riferimento dal menu progetto .
    2. Fare clic sulla scheda COM , selezionare la Libreria Microsoft ActiveX Data Objects 2.7 , fare clic su Seleziona e quindi fare clic su OK .
  7. Aggiungere il metodo seguente alla Classe 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
    					
    Nota se non è stato installato Office XP la cartella predefinita (c:\Programmi\Microsoft Office), modificare la stringa di connessione nel codice per riflettere il percorso corretto per l'installazione di Office. Inoltre, se è stato installato Office 2003, sarà necessario modificare di conseguenza il percorso.

  8. Dal menu Genera scegliere Genera soluzione per generare il servizio Web XML.

Test di servizi Web XML

  1. Nel menu debug , fare clic su Start . Verrà avviato Microsoft Internet Explorer e visualizza il file Service1.asmx.
  2. Fare clic sul GetResultsAsAdoXML collegamento ipertestuale.
  3. Fare clic su richiama per verificare la chiamata al metodo. Una nuova finestra Visualizza i risultati della query Categoria Vendite 1997 in formato XML rowset dello schema. Il documento XML di set di righe è racchiuso tra l'elemento di stringa .
  4. Scegliere Termina debug dal menu debug in Visual Studio. NET.

Creare un client per servizi Web XML

In questa sezione viene descritto come creare un client di utilizzare il servizio Web XML MyDataService. È possibile creare il client con Visual Basic 6.0 o Visual Basic. NET.

A scopo dimostrativo, i passaggi descrivono come creare il client di prova nello stesso computer al Web XML servizio. Tuttavia, è possibile creare i client di test su qualsiasi computer che possibile visualizzazione a WSDL (Web Services Description Language) file sul Web servizio espone.


Utilizzare Visual Basic .NET

  1. Creare un nuovo progetto di applicazione Windows in Visual Basic .NET. In base all'impostazione predefinita, viene creato il progetto Form1.
  2. Premere CTRL + ALT + X per visualizzare la casella degli strumenti.
  3. Scegliere Personalizza casella degli strumenti dal menu Strumenti . Selezionare gli elementi seguenti nell'elenco dei componenti e quindi fare clic su OK :
    • Grafico di Microsoft Office 10.0
    • Controllo origine dati di Microsoft Office 10.0
    • Tabella pivot di Microsoft Office 10.0
    Le icone per i componenti vengono visualizzate nella casella degli strumenti.

  4. Aggiungere un controllo Chart, un controllo tabella pivot e una data origine controllo a Form1. Ridimensionare e posizionare il form e controlli, se necessario.
  5. Aggiungere un controllo pulsante a Form1 e impostarne la proprietà Text del controllo ai Dati di riempimento .
  6. Aggiungere un riferimento al servizio Web XML di esempio. Per effettuare questa operazione, attenersi alla seguente procedura:
    1. Scegliere Aggiungi riferimento Web dal menu progetto . Verrà visualizzata la finestra di dialogo Aggiungi riferimento Web .
    2. Nella casella di testo indirizzo digitare http:// localhost /MyDataService/Service1.asmx?wsdl e premere INVIO. Il file WSDL viene visualizzato nella finestra di dialogo.

      Nota : se MyDataService non risiede sul computer locale, è necessario sostituire localhost nell'indirizzo con il nome del Web server su cui risiede MyDataService.
    3. Nella finestra di dialogo, scegliere Aggiungi riferimento .
  7. Fare doppio clic sul pulsante controllo sul Form1 e quindi sostituire il gestore Button1_Click con il codice riportato di seguito:
    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
    					
    Nota se il servizio Web XML è in un computer diverso, dichiarare la variabile objClient nel modo seguente:
     Dim objClient As New <servername>.Service1() 
    dove servername è il nome del server su cui risiede il servizio Web XML.
  8. Nota Se si utilizza Office 2003, sarà necessario modificare di conseguenza i riferimenti.

  9. Aggiungere il codice riportato di seguito all'inizio di Form1.vb:
    Imports OWC10 = Microsoft.Office.Interop.OWC
    					
  10. Nel menu debug , fare clic su Start per generare ed eseguire il programma client. Verrà visualizzato Form1.
  11. Fare clic su Dati di riempimento per presentare i dati nei controlli di grafico e tabella pivot.

Utilizzare Visual Basic 6.0

Servizi Web XML comunicano con i client utilizzando il oggetto semplice messaggi SOAP (Access Protocol). Se l'applicazione client è compatibile con SOAP, è possibile chiamare i metodi esposti dal servizio Web XML. I computer client non necessario necessario installato per chiamare metodi per il servizio Web XML Visual Studio. NET. Il client deve poter frame chiamate di metodo di servizio Web XML come le richieste SOAP e ricevere i risultati delle chiamate al metodo come SOAP le risposte. SOAP Toolkit consente di eseguire questa operazione.

Per ulteriori informazioni su SOAP Toolkit, incluse le istruzioni di download, vedere il seguente sito Web MSDN (informazioni in lingua inglese):
SOAP Toolkit
http://msdn2.microsoft.com/en-us/library/aa286526.aspx (http://msdn2.microsoft.com/en-us/library/aa286526.aspx)
Per creare un client di prova Visual Basic 6.0 per utilizzare i metodi di servizio Web XML MyDataService, attenersi alla seguente procedura:

Nota Questo client di test è necessario il che SOAP Toolkit 2.0 Service Pack 2 sia installato nel computer.
  1. Avviare Visual Basic 6.0 e creare un nuovo standard EXE progetto. In base all'impostazione predefinita, viene creato il progetto Form1.
  2. Scegliere riferimenti dal menu progetto . Aggiungere i seguenti riferimenti al progetto:
    • Microsoft SOAP Type Library
    • Microsoft XML, v3.0
  3. Nel menu progetto , fare clic su componenti . Selezionare Microsoft Office XP Web Components e quindi fare clic su OK .
  4. Aggiungere i seguenti componenti Web in Form1:
    • Grafico di Microsoft Office 10.0
    • Controllo origine dati di Microsoft Office 10.0
    • Tabella pivot di Microsoft Office 10.0
  5. Aggiungere un controllo CommandButton al Form1 e impostare la proprietà Caption del pulsante ai Dati di riempimento .
  6. Fare doppio clic sul controllo CommandButton e sostituire il gestore Command1_Click con il codice riportato di seguito:
    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
    					
    Nota se il servizio Web XML risiede su un computer separato, sostituire localhost nell'indirizzo con il nome del server su cui risiede il servizio Web XML.

  7. Premere F5 per compilare ed eseguire il programma. Verrà visualizzato Form1.
  8. Fare clic su Dati di riempimento per presentare i dati nei componenti del grafico e tabella pivot.

Riferimenti

Per ulteriori informazioni sui servizi Web XML creati utilizzando ASP.NET, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
301273  (http://support.microsoft.com/kb/301273/ ) Come scrivere un semplice servizio Web utilizzando Visual Basic .NET
Per ulteriori informazioni sui servizi Web XML creati utilizzando ASP.NET, vedere l'argomento di "Programming il Web con servizi Web" nella Guida di Visual Studio .NET o l'argomento di "ASP.NET Web Services and ASP.NET Web Service Clients" nella Guida gli sviluppatori di Microsoft .NET Framework.

Per ulteriori informazioni sulle funzionalità fondamentali del servizio Web e i servizi Web XML creati utilizzando ASP.NET, visitare il seguente sito Web MSDN (informazioni in lingua inglese):
http://msdn2.microsoft.com/en-us/library/ba0z6a33.aspx (http://msdn2.microsoft.com/en-us/library/ba0z6a33.aspx)
Per ulteriori informazioni sullo sviluppo di Microsoft Office con Visual Studio e Office XP Web Components, visitare il seguente sito Web MSDN:
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx (http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx)
Per ulteriori informazioni su Office XP Web Components, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
286212  (http://support.microsoft.com/kb/286212/ ) L'utilizzo di un'origine dati XML con il componente grafico di Office
235542  (http://support.microsoft.com/kb/235542/ ) Come utilizzare il componente Web di Office tabella pivot con VB

Le informazioni in questo articolo si applicano a:
  • Microsoft Office 2003 Web Components
  • Microsoft Office XP Web Components
  • Microsoft Web Services (included with the .NET Framework) 1.0
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft .NET Framework Class Libraries 1.0
Chiavi: 
kbmt kbhowtomaster kbofficewebchart kbofficewebpivot KB315695 KbMtit
Traduzione automatica articoliTraduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 315695  (http://support.microsoft.com/kb/315695/en-us/ )
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.