У меня есть требование, при котором я должен отображать некоторые данные (из пользовательской базы данных) и разрешать пользователю экспортировать их в файл 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 строками.Есть идеи, почему я ничего не вижу на странице?