在自定义SharePoint WebPart中使用Microsoft.Reporting.WebForms.ReportViewer

时间:2010-04-27 15:42:15

标签: sharepoint-2007 web-parts reportviewer

我有一个要求,我必须显示一些数据(来自自定义数据库),并让用户将其导出到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行的数据表。任何想法为什么我在页面上看不到任何东西?

1 个答案:

答案 0 :(得分:0)

您是否在SharePoint Web应用程序下运行报表服务器?将<remove key="ReportViewerMessages" />添加到报告网站的web.config,或从sharepoint web.config中删除<add key="ReportViewerMessages"... />应清除它。不确定这会对ootb reportviewer web部分产生什么影响(测试,测试,测试)......