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.
Este artigo passo a passo descreve como utilizar o ASP.NET para criar um serviço Web XML simples que obtém dados do Microsoft Access exemplo da base de dados Adamastor e devolve os dados como XML a um cliente quando o cliente chama um método do serviço. No lado do cliente, os dados são apresentados com os componentes de tabela dinâmica do Office e o gráfico. Este artigo também demonstra como criar um cliente para o serviço Web XML utilizando o Visual Basic .NET ou Visual Basic 6.0.
Criar um serviço Web XML simples utilizando o ASP.NET
Inicie o Visual Studio. NET.
No menu ficheiro , clique em Novo e em seguida, clique em projecto . Clique em tipos de projecto em Projectos do Visual Basic e clique em Serviço Web do ASP.NET em
modelos . É criado o Form1 por predefinição.
Alterar a localização para http://localhost/MyDataService e clique em OK . O projecto de serviço Web XML é criado no computador local com o nome MyDataService. Classe Service1 , que herda System.Web.Services.WebService , é criado por predefinição no ficheiro Service1.asmx.
No Solution Explorer, clique com o botão direito do rato Service1.asmx e, em seguida, seleccione Ver código . Isto apresenta o ficheiro de código para a página .asmx.
Adicione uma referência para o Microsoft ActiveX Data Objects biblioteca. Para o fazer, siga estes passos:
No menu projecto , clique em Add Reference .
Clique no separador COM , seleccione Microsoft ActiveX Data Objects 2.7 Library , clique em Seleccionar e, em seguida, clique em OK .
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
NOTA: se não instalou o Office XP para a pasta predefinida (C:\Program Files\Microsoft Office), modificar a cadeia de ligação no código para reflectir o caminho correcto para a instalação do Office. Além disso, se tiver instalado o Office 2003, poderá ter alterado o caminho.
No menu criar , clique em Criar solução para criar XML Web service.
No menu Debug , clique em Iniciar . Microsoft Internet Explorer é iniciado e navega para o ficheiro Service1.asmx.
Clique na hiperligação GetResultsAsAdoXML .
Clique em Invoke para testar a chamada de método. Uma nova janela apresenta os resultados da consulta Vendas de categoria de 1997 no formato de esquema de conjunto de linhas de XML. O documento XML do conjunto de linhas é entre o elemento de cadeia .
No menu Debug no Visual Studio. NET, clique em Parar de depuração .
Esta secção descreve como criar um cliente a consumir MyDataService XML Web service. É possível criar o cliente com o Visual Basic 6.0 ou Visual Basic. NET.
Para fins de demonstração, os passos descrevem como criar o cliente de teste no mesmo computador como XML Web service. No entanto, pode criar os clientes de teste em qualquer computador que pode navegar para o WSDL (Web Services Description Language) ficheiros que o Web expõe de serviço.
Utilizar o Visual Basic .NET
Crie um novo projecto de aplicação do Visual Basic .NET Windows. É criado o Form1 por predefinição.
Prima CTRL + ALT + X para apresentar a caixa de ferramentas.
No menu Ferramentas , clique em Personalizar a caixa de ferramentas . Seleccione os seguintes itens na lista de componentes e, em seguida, clique em OK :
Gráfico do Microsoft Office 10.0
Controlo de origem de dados do Microsoft Office 10.0
Tabela dinâmica do Microsoft Office 10.0
Ícones para os componentes aparecem na caixa de ferramentas.
Adicionar um controlo de gráfico, um controlo de tabela dinâmica e uma data origem controlo ao Form1. Dimensione e posicione o formulário e controlos conforme necessário.
Adicione um controlo de botão ao Form1 e, em seguida, defina a propriedade Text do controlo para Preencher dados .
Adicione uma referência para o serviço XML Web de exemplo. Para o fazer, siga estes passos:
No menu projecto , clique em ' Adicionar referência Web '. A caixa de diálogo Adicionar referência Web é apresentada.
Na caixa de texto endereço , escreva http:// localhost /MyDataService/Service1.asmx?wsdl e prima ENTER. O ficheiro WSDL é apresentado na caixa de diálogo.
Nota : se MyDataService não reside no computador local, substituir localhost no endereço com o nome da Web servidor no qual reside MyDataService.
Na caixa de diálogo, clique em Add Reference .
Faça duplo clique no controlo de botão no Form1 e substitua a rotina de tratamento de Button1_Click com o seguinte código:
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 o serviço XML Web estiver num computador diferente, declarar a variável objClient da seguinte forma:
Dim objClient As New <servername>.Service1()
em que servername é o nome do servidor onde reside o serviço Web XML.
Nota Se estiver a utilizar o Office 2003, poderá ter de alterar as referências em conformidade.
Adicione o seguinte código para a parte superior do Form1.VB:
Imports OWC10 = Microsoft.Office.Interop.OWC
No menu Debug , clique em Iniciar para criar e executar o programa de cliente. É apresentado o Form1.
Clique em Preencher dados para apresentar dados nos controlos do gráfico e de tabela dinâmica.
Utilizar o Visual Basic 6.0
XML Web services comunicam com clientes utilizando o objecto simples mensagens SOAP (Access Protocol). Se a aplicação cliente compatível com o SOAP, pode chamar os métodos expostos pelo serviço Web XML. Os computadores clientes não necessitam de ter Visual Studio .NET instalado para chamar métodos no serviço Web XML. O cliente deve têm capacidade para chamadas de método de serviço XML Web como pedidos SOAP de pacotes e receber os resultados de chamadas de método como SOAP respostas. O SOAP Toolkit permite-lhe efectuar este procedimento.
Para obter mais informações sobre SOAP Toolkit, incluindo instruções de transferência, consulte o seguinte Web site da Microsoft Developer Network (MSDN):
Para criar um cliente de teste do Visual Basic 6.0 para consumir métodos MyDataService XML Web service, siga estes passos:
Nota Este cliente de teste requer que SOAP Toolkit 2.0 Service Pack 2 esteja instalado no computador.
Inicie o Visual Basic 6.0 e crie um novo EXE padrão projecto. É criado o Form1 por predefinição.
No menu projecto , clique em References . Adicione as seguintes referências ao projecto:
Biblioteca de tipos Microsoft SOAP
Microsoft XML, v3.0
No menu projecto , clique em componentes . Seleccione Os componentes Web do Microsoft Office XP e, em seguida, clique em OK .
Adicione os seguintes componentes Web do Office ao Form1:
Gráfico do Microsoft Office 10.0
Controlo de origem de dados do Microsoft Office 10.0
Tabela dinâmica do Microsoft Office 10.0
Adicione um controlo CommandButton ao Form1 e defina a propriedade legenda do botão para Preencher dados .
Faça duplo clique no controlo CommandButton e substitua a rotina de tratamento de Command1_Click o seguinte código:
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 o serviço XML Web reside num computador diferente, substituir localhost no endereço de serviço Web XML com o nome do servidor onde reside o serviço Web XML.
Prima F5 para compilar e executar o programa. É apresentado o Form1.
Clique em Preencher dados para apresentar dados dos componentes gráfico e de tabela dinâmica.
Para obter mais informações sobre serviços Web XML que são criados utilizando o ASP.NET, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
301273
(http://support.microsoft.com/kb/301273/
)
Como escrever um serviço Web simples utilizando o Visual Basic .NET
Para obter mais informações sobre XML Web services criados utilizando ASP.NET, consulte o tópico "Programação na Web com serviços para a Web" a ajuda do Visual Studio .NET ou o tópico "ASP.NET Web e o ASP.NET Web Service clientes de serviços" no guia-o Microsoft .NET Framework Developer.
Para obter informações adicionais sobre princípios básicos de serviço Web e XML Web services criados utilizando ASP.NET, visite o seguinte Web site da Microsoft Developer Network (MSDN):
Para obter informações adicionais sobre o desenvolvimento do Microsoft Office com o Visual Studio e componentes Web do Office XP, visite o seguinte Web site da MSDN:
Para obter mais informações sobre componentes Web do Office XP, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
286212
(http://support.microsoft.com/kb/286212/
)
Como utilizar uma origem de dados XML com o componente de gráfico do Office
235542
(http://support.microsoft.com/kb/235542/
)
Como utilizar o componente Web do Office de tabela dinâmica com VB
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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/
)
Qual foi o esforço que despendeu pessoalmente para utilizar este artigo?
Muito baixo
Baixo
Moderado
Elevado
Muito elevado
Diga-nos porquê e o que podemos fazer para melhorar estas informações
Obrigado! Os seus comentários são utilizados para ajudar-nos a melhorar o conteúdo do nosso suporte. Para obter mais opções de assistência, visite a Home Page de Ajuda e Suporte.