Web应用程序如何应用报表服务来展现报表内容(实例基于SQL Server 2005 Report Service)
2010-03-02 17:02
991 查看
在WinForm或者Web App应用中,如何来引用已有的报表服务器中的报表,在我们的系统中来展现报表,从而达到更好的效果,下面以Web App项目为例,主要介绍下其中比较重要的几个步骤:
a) 新建一个Web App项目,并添加对组件Microsoft.ReportViewer.WebForms的引用(.NET分类),并在Web.config中的system.web -> httpHandlers下添加如下一项:
<add verb="*" path="Reserved.ReportViewerWebControl.axd" type = "Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
b) 添加Web Reference(Web引用),在URL框中输入已建立的报表服务器的地址信息,形式如下:
http://10.10.10.17/ReportServer/ReportService.asmx
c) 新建一个Web Form,在aspx页面中,添加一个asp:PlaceHolder占位符,用于展现报表列表。
d) 切换到cs后台页面,开始获取报表列表,并临时保存在一个List<Control>列表中,主要操作步骤如下:
i. 获取已存在报表服务引用实例:
WebReference.ReportingService ReportingService = new GetReportsList.WebReference.ReportingService();
ii. 设定验证关系:
ReportingService.Credentials = System.Net.CredentialCache.DefaultCredentials;
iii. 从报表服务器获取报表数据:(红色部分为报表所在文件夹路径)
WebReference.CatalogItem[] ReportItems = ReportingService.ListChildren(“/ReportFolder”, true);
iv. 遍历报表数组中的WebReference.CatalogItem实例,并通过添加一些HyperLink,Label及Panel来作为保存列表名称即其描述信息的容器,然后放置到前台的PlaceHolder中去,这样就 可以达到展现列表的目的了。当然,为HyperLink设定NavigateUrl属性,来为每个报表设定详细展现页面的URL,形如:
reportLink.NavigateUrl = string.Format("{0}?Path={1}&Name={2}", "ReportDisplay.aspx", item.Path, item.Name);
e) 再新建一个ReportDisplay.aspx页面,作为展现报表的详细页面。引用组件注册:
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Namespace="Microsoft.Reporting.WebForms" TagPrefix="mrw" %>
f) 在aspx页面,添加ReportViewer控件作为展现报表的容器,形如:
<mrw:ReportViewer runat="server" ID="ReportViewer" PromptAreaCollapsed="false" ProcessingMode="Remote" Width="100%"></mrw:ReportViewer>
g) 在cs后台页面,设定报表服务器URL即目录信息,并刷新报表即可展现相应的报表,形如:
string report = Request.QueryString["Path"] + "";
string reportServer = "http://10.10.10.17/ //Reportserver";
this.ReportViewer.ServerReport.ReportServerUrl = new Uri(reportServer);
this.ReportViewer.ServerReport.ReportPath = report;
this.ReportViewer.ServerReport.Refresh();
以上为一些主要的操作步骤,下面会附上工程代码,以便大家尝试。希望对大家能有所帮助!
点击下载工程代码
a) 新建一个Web App项目,并添加对组件Microsoft.ReportViewer.WebForms的引用(.NET分类),并在Web.config中的system.web -> httpHandlers下添加如下一项:
<add verb="*" path="Reserved.ReportViewerWebControl.axd" type = "Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
b) 添加Web Reference(Web引用),在URL框中输入已建立的报表服务器的地址信息,形式如下:
http://10.10.10.17/ReportServer/ReportService.asmx
c) 新建一个Web Form,在aspx页面中,添加一个asp:PlaceHolder占位符,用于展现报表列表。
d) 切换到cs后台页面,开始获取报表列表,并临时保存在一个List<Control>列表中,主要操作步骤如下:
i. 获取已存在报表服务引用实例:
WebReference.ReportingService ReportingService = new GetReportsList.WebReference.ReportingService();
ii. 设定验证关系:
ReportingService.Credentials = System.Net.CredentialCache.DefaultCredentials;
iii. 从报表服务器获取报表数据:(红色部分为报表所在文件夹路径)
WebReference.CatalogItem[] ReportItems = ReportingService.ListChildren(“/ReportFolder”, true);
iv. 遍历报表数组中的WebReference.CatalogItem实例,并通过添加一些HyperLink,Label及Panel来作为保存列表名称即其描述信息的容器,然后放置到前台的PlaceHolder中去,这样就 可以达到展现列表的目的了。当然,为HyperLink设定NavigateUrl属性,来为每个报表设定详细展现页面的URL,形如:
reportLink.NavigateUrl = string.Format("{0}?Path={1}&Name={2}", "ReportDisplay.aspx", item.Path, item.Name);
e) 再新建一个ReportDisplay.aspx页面,作为展现报表的详细页面。引用组件注册:
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Namespace="Microsoft.Reporting.WebForms" TagPrefix="mrw" %>
f) 在aspx页面,添加ReportViewer控件作为展现报表的容器,形如:
<mrw:ReportViewer runat="server" ID="ReportViewer" PromptAreaCollapsed="false" ProcessingMode="Remote" Width="100%"></mrw:ReportViewer>
g) 在cs后台页面,设定报表服务器URL即目录信息,并刷新报表即可展现相应的报表,形如:
string report = Request.QueryString["Path"] + "";
string reportServer = "http://10.10.10.17/ //Reportserver";
this.ReportViewer.ServerReport.ReportServerUrl = new Uri(reportServer);
this.ReportViewer.ServerReport.ReportPath = report;
this.ReportViewer.ServerReport.Refresh();
以上为一些主要的操作步骤,下面会附上工程代码,以便大家尝试。希望对大家能有所帮助!
点击下载工程代码
相关文章推荐
- Web应用程序如何应用报表服务来展现报表内容(实例基于SQL Server 2005 Report Service)
- 尝试的基于 Windows Server 2003 计算机上运行 SQL Server 2005 实例上安装 UDDI 服务数据库组件时可能收到错误信息
- JasperReport + Servlet Web应用之:HTML显示报表内容
- ASP.NET、OWC 和 SQL Server 2000 Analysis Services 构建了基于 Web 的 OLAP 报表应用
- 将 ASP.NET 2.0 应用程序服务配置为使用 SQL Server 2000 或 SQL Server 2005
- SQL 2005服务启动失败(在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误)
- 在IIS与SQL Server 2005中设置,让Reporting Services发布的web报表允许匿名访问
- WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[上篇](转)
- 论基于REST 服务的Web 应用系统设计
- ASP.NET 2.0 应用程序服务配置为使用 SQL Server 2000 或 SQL Server 2005
- 自定义智能报表系统内容准备:基于WEB的SBO数据结构浏览器
- SQL Server 2005中设置Reporting Services发布web报表的匿名访问[转]
- 如何手动卸载SQL Server 2005 实例 (同样适合于卸载SQL Server Express)
- SQL Server 2005 SP1 &VS2005 升级WEB支持应用程序
- 服务实例(Service Instance)生命周期如何控制
- 《深入浅出——SQL Server 2005开发、管理与应用实例》简介
- SQL2005 报表服务 之 虚拟目录Reports和ReportServer
- SQL Server 2005基于消息的应用程序介绍
- 如何 SQL Server 2005 实例之间传输登录和密码
- 使用PHP 开发基于Web 服务的应用程序