文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 招聘 专题 新闻
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» 微软SQL Server专区 » 微软商务智能 » 报表服务教程6: 使用 Visual Basic 或 Visual C# 访问报表       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: [转载] 报表服务教程6: 使用 Visual Basic 或 Visual C# 访问报表  ( 查看:287  回复:0 )   
 
ladyfi
新新人类  点击可查看详细



帖子 32
精华 0
无忧币 150
积分 120
阅读权限 20
注册日期 2007-9-18
最后登录 2007-12-4 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2007-11-1 10:05   标题:报表服务教程6: 使用 Visual Basic 或 Visual C# 访问报表
上一帖 |
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#  [code]
using System; using GetPropertiesSample.ReportService2005;
Visual Basic

Sub Main() Dim rs As New ReportingService2005 rs.Credentials = System.Net.CredentialCache.DefaultCredentials rs.Url = "[url=http://myserver/reportserver/reportservice2005.asmx]http://myserver/reportserver/reportservice2005.asmx[/url]" 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 = "[url=http://myserver/reportserver/reportservice2005.asmx]http://myserver/reportserver/reportservice2005.asmx[/url]"; 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。



网络工程师到底该不该去考CCIE认证?
2007-11-1 10:051楼
[ 顶部 ]
     
论坛跳转:  

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号