技术开发 频道

教程6: 使用 Visual Basic 或 Visual C# 访问报表



    【IT168 技术文档】以下教程说明了从使用 Microsoft Visual Basic 或 Microsoft Visual C# 创建的应用程序访问报表服务器 Web 服务的过程。
在本教程的课程中,您将完成下列活动:
•        使用“Visual Studio .NET 控制台应用程序”项目模板创建客户端应用程序。
•        添加报表服务器 Web 服务的 Web 引用。
•        编写访问 Web 服务的代码。
•        以调试模式运行控制台应用程序。
1:创建 Web 服务客户端项目   

    针对本演练,您将创建访问报表服务器 Web 服务的简单控制台应用程序。本演练假定您是在 Visual Studio 环境中进行开发的。
创建控制台应用程序
1.        在“文件”菜单中,指向“新建”,再单击“项目”以打开“新建项目”对话框。
2.        展开“Visual Basic 项目”或“Visual C# 项目”文件夹。
3.        单击“控制台应用程序”图标。
4.        在“名称”框中,输入您项目的名称。键入名称 GetPropertiesSample。
5.        在“位置”框中,输入保存项目的路径,或单击“浏览”导航到所需文件夹。
6.        单击“确定”。项目资源管理器中将显示您项目的折叠视图。
在项目资源管理器中,展开该项目节点。默认名称为 Program.cs(在 Microsoft Visual Basic 中为 Module1.vb)的文件已添加到您的项目中。
2:添加 Web 引用   

    Web 服务发现是客户端查找 Web 服务并获取其服务说明的过程。Visual Studio 中的 Web 服务发现过程涉及询问网站是否遵循预定算法。此过程的目的是查找服务说明,它是使用 Web 服务描述语言 (WSDL) 的一个 XML 文档。
服务说明介绍了哪些服务可用,以及如何与这些服务进行交互。没有服务说明,就不可能通过编程方式与 Web 服务进行交互。
    您的应用程序必须能够通过某种方式与 Web 服务通信并在运行时找到该服务。添加对 Web 服务项目的 Web 引用可以做到这点,这种方法将生成与 Web 服务连接并提供 Web 服务的本地表示形式的代理类。有关详细信息,请参阅 Visual Studio .NET 文档中的“Web 引用和生成 XML Web services 代理”。
添加 Web 引用
1.        在“项目”菜单中,单击“添加 Web 引用”。
2.        在“添加 Web 引用”的 URL 框中,键入可获取报表服务器 Web 服务说明的 URL,如
http://localhost/reportserver/reportservice2005.asmx?wsdl。然后单击“转到”按钮即可检索有关 Web 服务的信息。
-或-
    如果本地计算机上存在报表服务器 Web 服务,则单击浏览器窗格中的“本地计算机上的 Web 服务”链接。然后在提供的列表中单击 ReportService2005 Web 服务的链接。
3.        在“Web 引用名”框中,将 Web 引用重命名为 ReportService2005,这是将用于该 Web 引用的命名空间。
4.        单击“添加引用”可添加目标 Web 服务的 Web 引用。
Visual Studio 将下载服务说明并生成一个代理类,以在您的应用程序和报表服务器 Web 服务之间进行连接。
3:访问 Web 服务   

    将报表服务器 Web 服务的引用添加到项目中后,下一步是创建 Web 服务代理类的实例。然后,您可以通过调用代理类中的方法来访问 Web 服务的方法。当应用程序调用这些方法时,Visual Studio 生成的代理类代码将处理应用程序与 Web 服务之间的通信。
首先,您将创建一个 Web 服务代理类的实例 ReportingService2005。接着,您将使用代理类调用 Web 服务的 GetProperties 方法。您将使用该调用来检索一个示例报表 Company Sales 的名称和说明。
访问 Web 服务
1.        首先,您必须将命名空间添加到 Program.cs 文件(在 Visual Basic 中为 Module1.vb),采用的方法是向代码文件中添加 using(在 Visual Basic 中为 Import)指令。如果您使用该指令,则不必完全限定命名空间中的类型。
为此,请在代码文件的开头添加以下代码:
Visual Basic  复制到剪贴板
复制到剪贴板
Imports System Imports GetPropertiesSample.ReportService2005
C#  复制到剪贴板
复制到剪贴板
using System; using GetPropertiesSample.ReportService2005;

Visual Basic  复制到剪贴板
复制到剪贴板
Sub Main() Dim rs As New ReportingService2005 rs.Credentials = System.Net.CredentialCache.DefaultCredentials rs.Url = "http://myserver/reportserver/reportservice2005.asmx" Dim name As New [Property] name.Name = "Name" Dim description As New [Property] description.Name = "Description" Dim properties(1) As [Property] properties(0) = name properties(1) = description Try Dim returnProperties As [Property]() = rs.GetProperties("/AdventureWorks Sample Reports/Company Sales", properties) Dim p As [Property] For Each p In returnProperties Console.WriteLine((p.Name + ": " + p.Value)) Next p Catch e As Exception Console.WriteLine(e.Message) End Try End Sub

C#  复制到剪贴板
复制到剪贴板
static void Main(string[] args) { ReportingService2005 rs = new ReportingService2005(); rs.Credentials = System.Net.CredentialCache.DefaultCredentials; rs.Url = "http://myserver/reportserver/reportservice2005.asmx"; Property name = new Property(); name.Name = "Name"; Property description = new Property(); description.Name = "Description"; Property[] properties = new Property[2]; properties[0] = name; properties[1] = description; try { Property[] returnProperties = rs.GetProperties("/AdventureWorks Sample Reports/Company Sales", properties); foreach (Property p in returnProperties) { Console.WriteLine(p.Name + ": " + p.Value); } } catch (Exception e) { Console.WriteLine(e.Message); } }

    演练示例代码使用 Web 服务的 GetProperties 方法来检索示例报表 Company Sales 的属性。GetProperties 方法采用两个参数:一个是要检索其属性信息的报表的名称,一个是 Property[] 对象数组,它包含要检索其值的属性的名称。该方法还返回一个 Property[] 对象的数组,其中包含在属性参数中指定的属性名称和属性值。
注意:

如果您为属性参数提供空 Property[] 数组,则将返回所有可用属性。
在前面的示例中,代码使用 GetProperties 方法返回示例报表 Company Sales 的名称和说明。然后,代码使用 foreach 循环将属性和值写入控制台。
4:运行应用程序 (VB/VC#)   

Visual Studio 提供了几种从 IDE 生成和运行控制台应用程序的方法,例如:
•        开始执行(调试)
•        开始执行(不调试)
生成并运行 GetPropertiesSample
1.        在“调试”菜单中,单击“开始执行(不调试)”。该操作可确保控制台窗口在程序执行完毕后保持打开状态。
应用程序将以下输出内容打印到控制台:
复制到剪贴板
Name: Company Sales Description: Adventure Works sales by quarter and product category. This report illustrates the use of a matrix data region that provides drilldown from summary data into detail data by showing and hiding rows. This report also illustrates the use of background images. Press any key to continue...
2.        按任意键关闭 GetPropertiesSample。
0
相关文章