您的位置:首页 > 编程语言 > ASP

ASP.NET中访问SQL 2005报表服务(二)

2010-11-01 14:30 204 查看
通过调用SQL 2005的Web service访问SQL 2005报表服务

这种方法适合建立自己的报表解决方案,如改善报表参数的UI界面,提供漂亮的报表导航界面界面等。

使用 Add Web Reference 将一个 Web 服务引用添加到应用程序中。指定到 Web 服务的路径,如下所示:
http://MyServer/ReportServer/ReportService.asmx
如果报表服务就在本机可以直接点击”Web services on the local machine”进行选择。







在添加引用后,就可以创建 ReportingService 代理类的一个实例,并调用该服务上的方法。

//获取已存在报表服务引用实例
ReportService2005.ReportingService2005 reportingService = new ReportingService2005();
//设定验证关系
reportingService.Credentials = System.Net.CredentialCache.DefaultCredentials;
//从报表服务器获取报表数据
ReportService2005.CatalogItem[] reportItems = reportingService.ListChildren("/ReportProjectDemo", true);
//遍历报表数组中的WebReference.CatalogItem实例,然后放置到前台的DropDownList中去
foreach (ReportService2005.CatalogItem item in reportItems)
{
if(item.Type == ItemTypeEnum.Report)
{
DropDownList1.Items.Add(new ListItem(item.Name, item.Path));
}
}

如果您正在一个 Intranet 环境中部署应用程序,要通过将添加到应用程序的 web.config 文件中来启用模拟。您还要将客户端登录凭据传递到该服务,如前面的示例所示。
ListChildren 方法返回 CatalogItem 对象的数组,该数组表示用户有权查看的项,包括报表、文件夹和数据源。Path 属性提供了到项的唯一路径,例如,/SampleReports/Sales Order Detail,Type 属性使您可以区别报表和其他类型的项。
既然我已经将报表名称加载到了下拉列表中,我必须决定怎么样在仪表板应用程序内显示报表。我决定扩展我早期编写的 ReportViewer 代码并且只要用户选择某个报表并点击“Go”按钮就更改 ReportPath 属性。您还可以使用 IFRAME 并将 SRC 设置为适当的 URL(并为报表的名称加上前缀“http://MyServer/ReportServer?”)。
除了报表管理功能外,Web 服务提供的其他主要功能就是报表呈现。大多数应用程序(包括报表管理器应用程序)都使用 Web 服务功能来列出报表或更改设置,并使用URL 方法来显示报表。但是,如果想要完全控制报表内容在应用程序中处理的方式,可以使用 ReportingService 类的 Render 方法。该方法返回一个可以在以后保存到输出文件的字节数组,取决于请求的格式,输出文件可以是图形文件或 Excel 电子表格。如果要以 HTML 格式呈现报表,可能会更加复杂一些,因为您将需要使用 RenderStream 方法来分别呈现图像或其他资源。
具体可以参考下文
http://www.codeproject.com/KB/reporting-services/SQLRSViewer.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: