将RDL嵌入应用程序
来源:互联网 发布:辉煌电商seo 编辑:程序博客网 时间:2024/04/30 02:53
如果rdl报表已经设计好并部署到报表服务器上,我们已经可以通过报表服务器去访问报表了。不过这还是不够的,因为报表的使用者往往是一些非技术人员或维护人员,并没有服务器的访问权限。所以为了方便报表使用者浏览报表,我们开发者往往会把报表嵌套到网页中。接下来我将为大家介绍报表嵌套网页的方法。
假设在我的报表服务器中已经存在以下报表。
然后我们打开VS,在网站中新建一个aspx网页,在工具箱里找到 报表--ReportViewer,把控件拖放到页面中。
如果是10.0版本以上的ReportViewer还需要在页面上添加ScriptManager控件。
打开页面的后台代码进行编辑。假设我们要在ReportViewer嵌入RP_STUDENT_COURSE_POINT_STA这个报表。我的做法写一个ReportBind()的方法在PageLoad的时候执行。在这里我的报表服务器设置是通过配置文件获取的,当然你也可以直接使用字符串作为参数去设置服务器地址。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 8 public partial class Page_ReportView : System.Web.UI.Page 9 {10 protected void Page_Load(object sender, EventArgs e)11 {12 ReportBind();13 }14 15 private void ReportBind()16 {17 ReportViewer1.ServerReport.ReportServerUrl = new Uri(CommonDefine.getReportServerUrl());//CommonDefine.getReportServerUrl()方法通过配置文件读取报表服务器的地址18 ReportViewer1.ServerReport.ReportPath = CommonDefine.getReportProjectName() + "RP_STUDENT_COURSE_POINT_STA";//CommonDefine.getReportProjectName()方法通过配置文件读取报表所在目录19 ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;//设定报表的访问为远程访问20 ReportViewer1.DataBind();21 }22 }
CommonDefine类代码如下:
1 using System; 2 using System.Collections.Generic; 3 using System.Web; 4 using System.Configuration; 5 6 /// <summary> 7 ///CommonDefine 的摘要说明 8 /// </summary> 9 public class CommonDefine10 {11 public CommonDefine()12 {13 //14 //TODO: 在此处添加构造函数逻辑15 //16 }17 18 /// <summary>19 /// 取报表服务器地址20 /// </summary>21 /// <returns></returns>22 public static string getReportServerUrl()23 {24 return ConfigurationManager.AppSettings.Get("ReportServer").ToString();25 26 }27 28 /// <summary>29 /// 取报表项目名30 /// </summary>31 /// <returns></returns>32 public static string getReportProjectName()33 {34 return ConfigurationManager.AppSettings.Get("ReportProjectName").ToString();35 }36 }
web.config文件(报表服务器地址的配置):
<appSettings> <!--报表服务器地址--> <add key="ReportServer" value="http://localhost/ReportServer/"/> <!--报表项目名称--> <add key="ReportProjectName" value="/MYTEST_REPORT_PROJECT/"/> </appSettings>
如果需要在后台为报表传递参数,可以使用如下代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using Microsoft.Reporting.WebForms; 8 9 public partial class Page_ReportView : System.Web.UI.Page10 {11 protected void Page_Load(object sender, EventArgs e)12 {13 if (!Page.IsPostBack)14 {15 ReportBind();16 SetReprotParameters();17 }18 }19 20 private void ReportBind()21 {22 ReportViewer1.ServerReport.ReportServerUrl = new Uri(CommonDefine.getReportServerUrl()); //CommonDefine.getReportServerUrl()方法通过配置文件读取报表服务器的地址23 ReportViewer1.ServerReport.ReportPath = CommonDefine.getReportProjectName() + "RP_STUDENT_COURSE_POINT_STA"; //CommonDefine.getReportProjectName()方法通过配置文件读取报表所在目录24 ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote; //设定报表的访问为远程访问25 //ReportViewer1.DataBind();26 }27 28 private void SetReprotParameters()29 {30 List<ReportParameter> paramList = new List<ReportParameter>();31 paramList.Add(new ReportParameter("STUDENT_NO", "STD001", true));32 paramList.Add(new ReportParameter("STUDENT_NAME", "", true));33 ReportViewer1.ServerReport.SetParameters(paramList);34 }35 }
在浏览器中查看页面。
现在已经成功把报表嵌入到页面了。
- 将RDL嵌入应用程序
- 将Asp.NET应用程序嵌入到SharePoint
- 将外部应用程序嵌入WinForm中
- 将manifest嵌入到应用程序中
- 将外部应用程序嵌入WinForm中
- rdl
- 将你的Asp.NET应用程序嵌入到SharePoint
- 将你的Asp.NET应用程序嵌入到SharePoint
- 将你的Asp.NET应用程序嵌入到SharePoint
- 将你的Asp.NET应用程序嵌入到SharePoint
- 将你的Asp.NET应用程序嵌入到SharePoint 读后感
- 将flex的应用程序嵌入jsp的源代码
- 【专家篇】将3DXNA模型嵌入到Silverlight应用程序
- 将你的Asp.NET应用程序嵌入到SharePoint
- WinForm将其它应用程序窗体嵌入自己内部
- 将RDL报表转换成RDLC报表的函数
- 如何将 Sql Server 2008R2 生成的.rdl文件转换成Sql Server 2008版本的rdl
- flex:嵌入应用程序资源
- c3p0 com.mysql.jdbc.CommunicationsException异常
- 错误记录--Sql proc
- 简单驱动模块Makefile解析
- 关于Struts2 上传文件获取文件名称和类型(标准做法)
- 安装awstats和配置tomcat
- 将RDL嵌入应用程序
- 通过5v自举升压到15v——————————————————————(转自百度文库)
- android修改键值
- [转]一个Java项目的标准开发流程
- [iOS]关于TableViewCell的理解以及reuseIdentifier的意义
- js打开新窗口的方法
- Java - 内部类
- Coding the Matrix: Week 5 The Dimension 学习笔记
- DirectShow 字符叠加Filter编码分析