ID do artigo: 315695 - Última revisão: quinta-feira, 29 de março de 2007 - Revisão: 5.4

Como usar o Office Web Components com dados XML gerados por um XML Web Services criado usando ASP.NET

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Este artigo passo a passo descreve como usar o ASP.NET para criar um XML Web service simples que recupera dados do Microsoft Access banco de dados Northwind de exemplo e retorna os dados como XML para um cliente quando o cliente chama um método do serviço. No lado do cliente, os dados são apresentados com os componentes tabela dinâmica do Office e o gráfico. Este artigo também demonstra como criar um cliente para o XML Web Services usando Visual Basic .NET ou Visual Basic 6.0.

Criar um simples XML Web Services usando ASP.NET

  1. Inicie o Visual Studio. NET.
  2. No menu arquivo , clique em novo e, em seguida, clique em Project . Clique em Project types em Projetos do Visual Basic , clique ASP.NET Web Service em
  3. modelos . O Form1 é criado por padrão.
  4. Altere o local para http://localhost/MyDataService e clique em OK . O projeto de serviço XML Web é criado no computador local com o nome MyDataService. Classe Service1 , que herda de System.Web.Services.WebService , é criado por padrão no arquivo Service1.asmx.
  5. No Solution Explorer, clique com o botão direito do mouse em Service1.asmx e, em seguida, selecione View Code . Isso exibe o arquivo code-behind da página .asmx.
  6. Adicionar uma referência para o Microsoft ActiveX Data Objects biblioteca. Para fazer isso, execute as seguintes etapas:
    1. No menu Project , clique em Add Reference .
    2. Clique na guia COM , selecione Microsoft ActiveX Data Objects 2.7 Library , clique em Selecionar e, em seguida, clique em OK .
  7. Adicione o seguinte método à 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
    					
    Observação se você não instalou Office para a pasta padrão (c:\Arquivos de Programas\Microsoft Office), modificar a seqüência de conexão no código para refletir o caminho correto para sua instalação do Office. Além disso, se você instalou o Office 2003, talvez seja necessário alterar o caminho da mesma forma.

  8. No menu Build , clique em Build Solution para criar o XML Web service.

Teste seu XML Web Services

  1. No menu Debug , clique em Iniciar . Microsoft Internet Explorer inicia e navega para o arquivo Service1.asmx.
  2. Clique no hiperlink GetResultsAsAdoXML .
  3. Clique em Invoke para testar a chamada do método. Uma nova janela exibe os resultados da consulta Vendas de categoria para 1997 no formato de esquema de conjunto de linhas de XML. O documento XML de conjunto de linhas é colocado entre o elemento de seqüência de caracteres .
  4. No menu Debug no Visual Studio. NET, clique em Stop Debugging .

Criar um cliente para O XML Web Services

Esta seção descreve como criar um cliente para consumir MyDataService XML Web service. Você pode criar o cliente com o Visual Basic 6.0 ou Visual Basic. NET.

Para fins de demonstração, as etapas descrevem como criar o cliente de teste no mesmo computador como o XML Web service. No entanto, você pode criar seus clientes de teste em qualquer computador que pode navegar para o Language (WSDL) arquivo Web service expõe.


Usar o Visual Basic .NET

  1. Crie um novo projeto Visual Basic.NET Windows Application. O Form1 é criado por padrão.
  2. Pressione CTRL + ALT+X para exibir a caixa de ferramentas.
  3. No menu Ferramentas , clique em Customize Toolbox . Selecionar os seguintes itens na lista de componentes e, em seguida, clique em OK :
    • Gráfico do Microsoft Office 10.0
    • Controle de fonte de dados do Microsoft Office 10.0
    • Tabela dinâmica do Microsoft Office 10.0
    Ícones para os componentes aparecem na caixa de ferramentas.

  4. Adicionar um controle de gráfico, um controle de tabela dinâmica e uma Data Source controle ao Form1. Dimensionar e posicionar o formulário e controles, conforme necessário.
  5. Adicione um controle Button para Form1 e, em seguida, defina a propriedade Text do controle como Preencher dados .
  6. Adicione uma referência para o exemplo XML Web service. Para fazer isso, execute as seguintes etapas:
    1. No menu Project , clique em Add Web Reference . A caixa de diálogo Add Web Reference é exibida.
    2. Na caixa de texto endereço , digite http:// localhost /MyDataService/Service1.asmx?wsdl e pressione ENTER. O arquivo WSDL é exibido na caixa de diálogo.

      Observação : se MyDataService não residir no computador local, substituir localhost no endereço pelo nome da Web servidor no qual reside MyDataService.
    3. Na caixa de diálogo, clique em Add Reference .
  7. Clique duas vezes no controle Button no Form1 e depois substituir o manipulador Button1_Click com o código a seguir:
    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
    					
    Observação se o serviço XML da Web estiver em um computador separado, declarar a variável objClient da seguinte maneira:
     Dim objClient As New <servername>.Service1() 
    onde servername é o nome do servidor no qual reside o XML Web service.
  8. Observação Se você estiver usando o Office 2003, talvez você precise alterar as referências adequadamente.

  9. Adicione o seguinte código à parte superior do Form1.vb:
    Imports OWC10 = Microsoft.Office.Interop.OWC
    					
  10. No menu Debug , clique em Iniciar para criar e executar o programa cliente. Form1 é exibida.
  11. Clique em Preencher dados para apresentar dados nos controles de tabela dinâmica e gráfico.

Usar o Visual Basic 6.0

Serviços XML da Web se comunicam com clientes usando o Simple Object mensagens SOAP (protocolo de acesso). Se o aplicativo cliente for reconhecem o SOAP, ele pode chamar os métodos que são expostos pelo serviço da Web XML. Os computadores cliente não precisam ter Visual Studio .NET instalado para chamar métodos no serviço da Web XML. O cliente deve ter a capacidade quadro chamadas de método de serviço XML da Web como solicitações SOAP e receber os resultados de chamadas de método como SOAP respostas. O SOAP Toolkit permite que você fazer isso.

Para obter mais informações sobre o Kit de ferramentas SOAP, incluindo instruções de download, consulte a seguinte site da Microsoft Developer Network (MSDN):
Kit de ferramentas para SOAP
http://msdn2.microsoft.com/en-us/library/aa286526.aspx (http://msdn2.microsoft.com/en-us/library/aa286526.aspx)
Para criar um cliente de teste do Visual Basic 6.0 para consumir métodos em MyDataService XML Web service, execute essas etapas:

Observação Este cliente de teste requer que o SOAP Toolkit 2.0 Service Pack 2 esteja instalado no computador.
  1. Inicie o Visual Basic 6.0 e crie um EXE padrão novo projeto. O Form1 é criado por padrão.
  2. No menu Project , clique em referências . Adicione as seguintes referências para o projeto:
    • Biblioteca de tipos Microsoft SOAP
    • Microsoft XML, v3.0
  3. No menu Project , clique em componentes . Selecione Microsoft Office XP Web Components e, em seguida, clique em OK .
  4. Adicione o seguinte Office Web Components no Form1:
    • Gráfico do Microsoft Office 10.0
    • Controle de fonte de dados do Microsoft Office 10.0
    • Tabela dinâmica do Microsoft Office 10.0
  5. Adicionar um controle CommandButton ao Form1 e defina a propriedade legenda do botão para Preenchimento de dados .
  6. Clique duas vezes no controle CommandButton e substituir o manipulador de Command1_Click com o código a seguir:
    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
    					
    Observação se o serviço XML da Web reside em um computador separado, substituir localhost no endereço do serviço XML da Web pelo nome do servidor no qual reside o XML Web service.

  7. Pressione F5 para compilar e executar o programa. Form1 é exibida.
  8. Clique em Preencher dados para apresentar dados nos componentes tabela dinâmica e gráfico.

Referências

Para obter mais informações sobre XML Web services criadas usando ASP.NET, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
301273  (http://support.microsoft.com/kb/301273/ ) Como escrever um serviço da Web simples usando o Visual Basic .NET
Para obter mais informações sobre XML Web services criadas usando ASP.NET, consulte o tópico "Programming the Web with Web Services" na Ajuda do Visual Studio .NET ou o tópico "ASP.NET Web Services e ASP.NET Web Service Clients" no guia do desenvolvedor do Microsoft .NET Framework.

Para obter informações adicionais sobre conceitos básicos do serviço da Web e XML Web services que são criados usando ASP.NET, visite o seguinte site da Web Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ba0z6a33.aspx (http://msdn2.microsoft.com/en-us/library/ba0z6a33.aspx)
Para obter informações adicionais sobre o desenvolvimento do Microsoft Office com o Visual Studio e o Office XP Web Components, visite o seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx (http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx)
Para obter mais informações sobre o Office XP Web Components, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
286212  (http://support.microsoft.com/kb/286212/ ) Como usar uma fonte de dados XML com o componente gráfico do Office
235542  (http://support.microsoft.com/kb/235542/ ) Como usar o componente Tabela dinâmica Office na Web com o VB

A informação contida neste artigo aplica-se 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
  • Bibliotecas de Classes do Microsoft .NET Framework 1.0
Palavras-chave: 
kbmt kbhowtomaster kbofficewebchart kbofficewebpivot KB315695 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 315695  (http://support.microsoft.com/kb/315695/en-us/ )