我有一个要求,我必须显示一些数据(来自自定义数据库),并让用户将其导出到excel文件。
我决定使用Microsoft.Reporting.WebForms.ReportViewer中的ReportViewer控件。我将所需的程序集添加到项目引用中,并添加以下代码来测试它
protected override void CreateChildControls()
{
base.CreateChildControls();
objRV = new Microsoft.Reporting.WebForms.ReportViewer();
objRV.ID = "objRV";
this.Controls.Add(objRV);
}
第一个错误要求我在web.config
中添加此行
我做了,下一个错误说
The type 'Microsoft.SharePoint.Portal.Analytics.UI.ReportViewerMessages, Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' does not implement IReportViewerMessages
是否可以在自定义Web部件中使用ReportViewer?我宁愿不绑定转发器并将自己的导出写入excel代码。我想使用已经由微软构建的东西?关于我可以重复使用的任何想法?
修改
我评论了以下一行
<add key="ReportViewerMessages"...
现在我的代码在我添加数据源之后就是这样了
protected override void CreateChildControls()
{
base.CreateChildControls();
objRV = new Microsoft.Reporting.WebForms.ReportViewer();
objRV.ID = "objRV";
objRV.Visible = true;
Microsoft.Reporting.WebForms.ReportDataSource datasource = new Microsoft.Reporting.WebForms.ReportDataSource("test", GroupM.Common.DB.GetAllClientCodes());
objRV.LocalReport.DataSources.Clear();
objRV.LocalReport.DataSources.Add(datasource);
objRV.LocalReport.Refresh();
this.Controls.Add(objRV);
}
但现在我在页面上看不到任何数据。我确实检查了我的db调用,它确实返回了一个包含15行的数据表。任何想法为什么我在页面上看不到任何东西?
答案 0 :(得分:0)
您是否在SharePoint Web应用程序下运行报表服务器?将<remove key="ReportViewerMessages" />
添加到报告网站的web.config,或从sharepoint web.config中删除<add key="ReportViewerMessages"... />
应清除它。不确定这会对ootb reportviewer web部分产生什么影响(测试,测试,测试)......