Использование Microsoft.Reporting.WebForms.ReportViewer в пользовательской веб-части SharePoint - PullRequest
1 голос
/ 27 апреля 2010

У меня есть требование, при котором я должен отображать некоторые данные (из пользовательской базы данных) и разрешать пользователю экспортировать их в файл Excel.

Я решил использовать элемент управления ReportViewer, представленный в Microsoft.Reporting.WebForms.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

Можно ли использовать ReportViewer в моей пользовательской веб-части?Я предпочитаю не связывать повторитель и писать свой собственный экспорт в код Excel.Я хочу использовать что-то, что уже построено Microsoft?Любые идеи о том, что я могу использовать повторно?

Редактировать

Я прокомментировал следующую строку

<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);
        }

, но сейчас я не вижу никаких данных на странице.Я проверил мой вызов БД, и он возвращает таблицу данных с 15 строками.Есть идеи, почему я ничего не вижу на странице?

1 Ответ

0 голосов
/ 27 апреля 2010

Вы используете сервер отчетов в веб-приложении SharePoint? Добавление <remove key="ReportViewerMessages" /> в ваш web.config сайта отчетности или удаление <add key="ReportViewerMessages"... /> из вашего sharepoint web.config должно очистить его. Не уверен, как это повлияет на веб-часть ootb reportviewer (test, test, test) ...

...