[英]Controlling the SQL Server Reporting Services Report Viewer programmatically
[英]Report viewer from SQL reporting services in VS 2008 report control
VS 2008报表控件中来自SQL报表服务的报表查看器如果我在VS 2008中创建新报表,则它们的扩展名为.rdlc并可以正常工作。
我有一些在SQL报表服务中使用的报表。 扩展名为.rdl,并希望使其与VS 2008一起使用。
我将rdl文件和.rdl.data文件复制到VS 2008(SP1)项目中,但是当我在控件中选择报表时,它看不到该文件(我假设它正在寻找.rdlc文件)
我尝试将文件重命名为.rdlc并加载文件并得到
报表定义具有无效的目标名称空间“ http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition ”,该名称空间无法升级。
我在这里看到http://www.gotreportviewer.com/它说:“ RDL文件与ReportViewer控件运行时完全兼容。但是,RDL文件不包含一些信息,ReportViewer控件的设计时需要这些信息来自动生成数据绑定代码。通过手动绑定数据,可以在ReportViewer控件中使用RDL文件。”
但是有关如何手动绑定数据的链接已损坏。
关于如何手动重新绑定数据的任何想法? 还是让这些报告与2008控件一起使用的更好方法?
不幸的是,SSRS 2008中的服务器版本* .rdl与本地版本* .rdlc文件不兼容。
基本上,您所能做的就是
要么直接在服务器上使用.RDL(使用ReportViewer控件中的“远程呈现”报告)
基本上从头开始将整个报告重新创建为本地报告
这真是令人难以置信-但不幸的是,这是事实.....让我们希望使用.NET 4,Visual Studio 2010会更好。
如果您不需要向下钻取之类的高级功能,并且不能使用VS2010,则可以这样做(我可以这样做):
上面的列表可能看起来很吓人,但是我花了仅2天的时间就在ASP.NET MVC中破解了完整的解决方案,而且只有大约300行代码,包括我自己的CSV代。
一旦从XML查询获得DataTable / DataSet,绑定数据的代码就非常简单:
var reportDataSource = new ReportDataSource();
reportDataSource.Name = name;
reportDataSource.Value = ds.Tables[0];
localreport.DataSources.Add(reportDataSource);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.