你目前正处于脱机状态,正在等待 Internet 重新连接

如何通过使用 ASP.NET 创建的 XML Web 服务生成的 XML 数据使用 Office Web Components

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 315695
概要
本分步指南介绍如何使用 ASP.NET 来构建一个简单的 XML Web 服务,从 Microsoft Access Northwind 示例数据库中检索数据以 XML 形式向客户端返回数据,当客户端调用服务的方法。在客户端,与 Office 数据透视表和图表组件提供的数据。本文还演示了如何使用 Visual Basic.NET 或 Visual Basic 6.0 中生成 XML Web 服务的客户端。

back to the top

创建一个简单的 XML Web 服务使用 ASP.NET

  1. 开始 Visual Studio。网络。
  2. 文件菜单上单击新建,然后单击项目。在项目类型下单击Visual Basic 项目,然后单击下的ASP.NET Web 服务
  3. 模板。默认情况下将创建 Form1。
  4. 位置更改为http://localhost/MyDataService ,然后单击确定。XML Web 服务项目上本地 computerwith MyDataService 的名称创建。类服务 1System.Web.Services.WebService从继承,这是默认创建的 Service1.asmx 文件中。
  5. 在解决方案资源管理器中,用鼠标右键单击Service1.asmx,,然后选择查看代码。这将显示.asmxpage 的代码隐藏文件。
  6. 添加到 Microsoft ActiveX 数据 Objectslibrary 的引用。若要执行此操作,请按照下列步骤操作:
    1. 项目菜单上,单击添加引用
    2. 单击COM选项卡,选择Microsoft ActiveX 数据对象 2.7 库,单击选择,然后单击确定
  7. 将下面的方法添加到类服务 1:
    <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.ReadTextEnd Function					
    注意:如果您没有默认文件夹 (C:\Program 该办公室) 设置 Office XP,修改连接字符串 codeto 中的反映您的 Office 安装的正确路径。此外,如果您已经安装了 Office 2003,可能需要相应地更改路径。

  8. 单击生成菜单上的生成解决方案,以生成 XML Web 服务。
back to the top

测试您的 XML Web 服务

  1. 调试菜单上,单击开始。Microsoft Internet Explorer 开始,并浏览到 theService1.asmx 文件中。
  2. 单击GetResultsAsAdoXML超链接。
  3. 单击要测试的方法调用的调用。新窗口显示1997年类销售查询结果的 XML 的行集架构格式。行集 XML 文档中的字符串元素的 isenclosed。
  4. 在 Visual Studio 的.NET 在调试菜单上,单击停止调试
back to the top

生成 XML Web 服务的客户端

本部分介绍如何创建使用 MyDataService XML Web 服务客户端。可以在 Visual Basic 6.0 或 Visual Basic.NET 中创建您的客户端。

为了便于演示,步骤描述了如何创建 XML Web 服务所在的计算机上测试客户端。但是,您可以建立测试客户机上可以浏览到该 Web 服务公开的 Web 服务描述语言 (WSDL) 文件中的任何计算机。

back to the top

使用 Visual Basic.NET

  1. 创建一个新的 Visual Basic.NET Windows 应用程序项目。默认情况下将创建 Form1。
  2. 按下 CTRL + ALT + X 显示工具箱。
  3. 工具菜单上单击自定义工具箱。在组件列表中,单击确定选择以下各项:
    • Microsoft Office 图表 10.0
    • Microsoft Office 数据源控件 10.0
    • Microsoft Office 数据透视表 10.0
    在 theToolbox 中显示组件的图标。

  4. 向 Form1 中添加图表控件、 数据透视表控件和数据源控件。大小和位置,窗体和控件 asneeded。
  5. 按钮控件添加到 Form1,然后将该控件的Text属性设置为填充数据
  6. 添加示例 XML Web 服务的引用。若要执行此操作,请执行以下步骤:
    1. 项目菜单上,单击添加 Web 引用。出现添加 Web 引用对话框。
    2. 地址文本框中,键入 http://本地主机/MyDataService/Service1.asmx?wsdl 然后按 ENTER。WSDL 文件显示在对话框中。

      注意: 如果 MyDataService 没有驻留在本地计算机上,则更换 本地主机 在 MyDataService 所驻留的 Web 服务器的名称与地址。
    3. 在对话框中,单击添加引用
  7. 双击在 Form1 上,按钮控件,然后将Button1_Click处理程序替换为以下代码:
    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 = FalseEnd Sub					
    注意:如果该 XML Web 服务是在单独的计算机上,将objClient变量声明,如下所示:
     Dim objClient As New <servername>.Service1() 
    在哪里 服务器名 是 serveron 所在的 XML Web 服务的名称。
  8. 注意:如果您使用的 Office 2003,您可能需要相应地更改引用。

  9. Form1.vb 的顶部添加以下代码:
    Imports OWC10 = Microsoft.Office.Interop.OWC					
  10. 调试菜单上,单击开始生成并运行客户端程序。此时将显示 Form1。
  11. 单击以显示数据的图表和数据透视表控件中填充数据
back to the top

使用 Visual Basic 6.0

XML Web 服务与客户端通讯使用 Simple Object Access Protocol (SOAP) 消息。如果了解 SOAP 客户端应用程序,它可以调用 XML Web 服务公开的方法。客户端计算机不需要安装 XML Web 服务上调用的方法的 Visual Studio.NET。客户端应具有的能力框架 XML Web 服务方法调用作为 SOAP 请求和接收 SOAP 响应作为方法调用的结果。SOAP Toolkit 使您可以执行此操作。

有关 SOAP Toolkit 的详细信息,包括下载说明,请参阅下面的 Microsoft 开发人员网络 (MSDN) Web 站点: 若要创建 Visual Basic 6.0 测试客户端以使用在 MyDataService XML Web 服务的方法,请执行以下步骤:

注意:此测试客户端要求 SOAP Toolkit 2.0 Service Pack 2 的计算机上安装。
  1. 开始 Visual Basic 6.0 并创建新标准 EXEproject。默认情况下将创建 Form1。
  2. 项目菜单上,单击引用。添加以下项目引用:
    • Microsoft Soap 类型库
    • Microsoft XML、 3.0 版
  3. 项目菜单上,单击组件。选择Microsoft Office XP Web 组件,然后单击确定
  4. 向 Form1 中添加以下 Office Web Components:
    • Microsoft Office 图表 10.0
    • Microsoft Office 数据源控件 10.0
    • Microsoft Office 数据透视表 10.0
  5. 将一个命令按钮控件添加到 Form1 并将该按钮的标题属性设置为填充数据
  6. 双击命令按钮控件和Command1_Click处理程序替换为以下代码:
    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 = FalseEnd Sub					
    注意:如果该 XML Web 服务驻留在单独的计算机上,则更换本地主机 在 XML Web 服务所驻留的服务器的名称与 XML Web 服务地址。

  7. 按 f5 键以生成并运行该程序。Form1appears。
  8. 单击填充数据以显示数据中的图表和 PivotTablecomponents。
back to the top
参考
有关使用 ASP.NET 创建的 XML Web 服务的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
301273 如何通过使用 Visual Basic.NET 编写一个简单的 Web 服务
有关使用 ASP.NET 创建的 XML Web 服务的详细信息,请参阅 Visual Studio.NET 帮助中的"编程 Web 与 Web 服务的"主题或 Microsoft.NET Framework 开发员指南"ASP.NET Web 服务和 ASP.NET Web 服务客户端"主题。

有关 Web 服务基础和通过使用 ASP.NET 创建的 XML Web 服务的其他信息,请访问下面的 Microsoft 开发人员网络 (MSDN) Web 站点:有关 Microsoft Office 开发与 Visual Studio 和 Office XP Web 组件的其他信息,请访问下面的 MSDN 网站:Office XP Web 组件有关的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
286212 如何使用 Office 图表组件的 XML 数据源
235542 如何在 VB 中使用数据透视表 Office Web 组件
back to the top
ASP.NET OWC 图表 VB Office web 服务

属性

文章 ID:315695 - 上次审阅时间:03/05/2016 09:02:00 - 修订版本: 6.0

Microsoft ASP.NET 1.0, Microsoft Visual .NET 2002 标准版, Microsoft Visual Basic 6.0 专业版

  • kbhowtomaster kbofficewebchart kbofficewebpivot kbmt KB315695 KbMtzh
反馈