在ASP.NET中访问SQL 2005报表服务
2007-06-15 09:42
381 查看
在ASP.NET中,有多种方法可以访问SQL 2005的报表服务。
方法一: 通过ReportView控件
首先,安装ReportView控件。如果你使用的是SQL 2000报表服务器,到这个目录去找到源码工程 C:/Program Files/Microsoft SQL Server/MSSQL/Reporting Services/Samples/Applications/ReportViewer/vb and C:/Program Files/Microsoft SQL Server/MSSQL/Reporting Services/Samples/Applications/ReportViewer /cs,然后自己去编译。
如果你直接使用SQL 2005的报表服务器,只要安装时选择了work station,就会自动安装上这个控件。不需要自己编译了。
在你的ASP.NET工程中,新建一个web page,加入一个ReportView控件ReportViewer1。
修改ReportServerUrl和ReportPath两个属性:
ReportServerUrl=http://ctc-bar:81/reportserver (ctc-bar是你的报表服务器的名字,我这里因为使用的是端口81,所以加上了:81)
ReportPath=/Barreports/EBCdetaillist (/Barreports/EBCdetaillist是你的报表所在路径,注意最前面的/)
现在,你已经可以使用这个报表了。运行你的程序,在ReportView的位置出现了报表,和从URL访问一抹一样。
现在,我要对报表的输入参数作些工作,我的报表里有两个时间参数,开始时间和结束时间。如果直接在文本输入框输入2007-1-1,非常不方便。我希望从web page上加一个日期选择的控件来代替直接输入日期。
这需要两步:
1 将ShowParameterPrompts设置为false. 即关闭报表服务器提供的参数输入区域。
2 在web page上增加START DATE和END DATE两个日期控件,和一个VIREW REPORT的按钮。
在VIREW REPORT按钮的CLICK事件中,将日期控件的值用SetParameters方法传递给服务器。类似于
protected void ButtonViewReport_Click(object sender, EventArgs e)
...{
DateTime StartDate = System.Convert.ToDateTime(TextBoxStartDate.Value);
DateTime EndDate = System.Convert.ToDateTime(TextBoxEndDate.Value);
ReportParameter[] Parameters = new ReportParameter[2];
Parameters[0] = new ReportParameter("startdate", StartDate.ToShortDateString());
Parameters[1] = new ReportParameter("enddate", EndDate.ToShortDateString());
ReportViewer1.ServerReport.SetParameters(Parameters);
}
网上这个地址有更加详细的讲解
http://www.dreams.idv.tw/~code6421/Doc/SqlRepSvc2.pdf
方法二: 通过调用SQL 2005的Web services
这种方法适合建立自己的报表解决方案,如改善报表参数的UI界面,提供漂亮的报表导航界面界面等。
具体可以参考下文
http://www.codeproject.com/sqlrs/SQLRSViewer.asp
方法一: 通过ReportView控件
首先,安装ReportView控件。如果你使用的是SQL 2000报表服务器,到这个目录去找到源码工程 C:/Program Files/Microsoft SQL Server/MSSQL/Reporting Services/Samples/Applications/ReportViewer/vb and C:/Program Files/Microsoft SQL Server/MSSQL/Reporting Services/Samples/Applications/ReportViewer /cs,然后自己去编译。
如果你直接使用SQL 2005的报表服务器,只要安装时选择了work station,就会自动安装上这个控件。不需要自己编译了。
在你的ASP.NET工程中,新建一个web page,加入一个ReportView控件ReportViewer1。
修改ReportServerUrl和ReportPath两个属性:
ReportServerUrl=http://ctc-bar:81/reportserver (ctc-bar是你的报表服务器的名字,我这里因为使用的是端口81,所以加上了:81)
ReportPath=/Barreports/EBCdetaillist (/Barreports/EBCdetaillist是你的报表所在路径,注意最前面的/)
现在,你已经可以使用这个报表了。运行你的程序,在ReportView的位置出现了报表,和从URL访问一抹一样。
现在,我要对报表的输入参数作些工作,我的报表里有两个时间参数,开始时间和结束时间。如果直接在文本输入框输入2007-1-1,非常不方便。我希望从web page上加一个日期选择的控件来代替直接输入日期。
这需要两步:
1 将ShowParameterPrompts设置为false. 即关闭报表服务器提供的参数输入区域。
2 在web page上增加START DATE和END DATE两个日期控件,和一个VIREW REPORT的按钮。
在VIREW REPORT按钮的CLICK事件中,将日期控件的值用SetParameters方法传递给服务器。类似于
protected void ButtonViewReport_Click(object sender, EventArgs e)
...{
DateTime StartDate = System.Convert.ToDateTime(TextBoxStartDate.Value);
DateTime EndDate = System.Convert.ToDateTime(TextBoxEndDate.Value);
ReportParameter[] Parameters = new ReportParameter[2];
Parameters[0] = new ReportParameter("startdate", StartDate.ToShortDateString());
Parameters[1] = new ReportParameter("enddate", EndDate.ToShortDateString());
ReportViewer1.ServerReport.SetParameters(Parameters);
}
网上这个地址有更加详细的讲解
http://www.dreams.idv.tw/~code6421/Doc/SqlRepSvc2.pdf
方法二: 通过调用SQL 2005的Web services
这种方法适合建立自己的报表解决方案,如改善报表参数的UI界面,提供漂亮的报表导航界面界面等。
具体可以参考下文
http://www.codeproject.com/sqlrs/SQLRSViewer.asp
相关文章推荐
- 在ASP.NET中访问SQL 2005报表服务的权限设置问题
- ASP.NET中访问SQL 2005报表服务(二)
- ASP.NET中访问SQL 2005报表服务(三)
- 在ASP.NET中访问SQL 2005报表服务( 一)
- 在ASP.NET中访问SQL 2005报表服务 (二)
- ASP.NET中访问SQL 2005报表服务(一)
- SQL报表服务 - ReportViewer控件 + ASP.NET + 日历控件问题
- ASP.NET通过写SQL文直接访问Microsoft SQL Server 2005
- 将 ASP.NET 2.0 应用程序服务配置为使用 SQL Server 2000 或 SQL Server 2005
- ASP.NET优化连载(三)只读数据访问用SqlDataReader,不要使用DataSet
- C#应用访问Microsoft SQL Server 2005分析服务
- [VS2015] [asp.net] 允许远程访问本机正在DEBUG的服务
- asp.net 2.0,sql 2005中的mars
- Using ROW_NUMBER() to paginate your data with SQL Server 2005 and ASP.NET
- ASP.NET预编译更新问题与SQL 2005标识列继承问题
- asp.net常用类--SQL数据访问基础类
- Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程
- SQL2005报表服务不能启动问题总结报告
- Asp.net 不用Sql链接做报表
- ASP.NET连接数据库SQL2005 学习总结