Microsoft ReportViewer Control ЧИТАЙТЕ
Я успешно использовал элемент управления Microsoft ReportViewer на веб-странице, недавно принадлежавшей пространству имен Microsoft.Reporting.WebForms. Я использовал свойство ReportViewer под названием Server.ReportServerCredentials, чтобы установить учетные данные (домен, пользователя и пароль). Я был в состоянии отобразить отчеты, которые находятся на удаленном сервере.
Теперь мне нужно сделать что-то подобное, но мне нужен отчет в форме окна. У меня проблема в том, что я использую элемент управления, принадлежащий пространству имен Microsoft.Reporting.WinForms, а свойство ReportServerCredentials имеет значение READONLY.
Почему для одного элемента управления это свойство доступно только для чтения, а для другого - не учитывается необходимость установки учетных данных для доступа к отчету? Как мне обойти это?
3 ответа
Это на самом деле не отвечает на ваш вопрос, но я бы пропустил использование средства просмотра отчетов WinForms. Посмотрите мой ответ здесь, чтобы узнать, почему и как сделать это лучше с помощью веб-браузера (вы даже можете использовать свое веб-приложение, которое уже обращается к отчетам).
Это на самом деле не только для чтения.
Проверьте MSDN - класс ReportServerCredentials.
Вот как вы могли бы установить учетные данные.
ReportServerCredentials reportCredentials = new ReportServerCredentials();
//SET THE CREDENTIALS HERE A LA reportCredentials.ImpersonateUser etc.
rvReportViewerControl.ServerReport.ReportServerCredentials = reportCredentials;
Редактировать:
ReportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = reportCredentials.NetworkCredentials;
UE этот код
dim myCred As NetworkCredential = New NetworkCredential("mmmmmm", "*****", "----")
ReportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = myCred
В отличие от веб-версии ReportViewer
контроль, который требует от вас обеспечить реализацию IReportServerCredentials
интерфейс, реализует версию средства просмотра отчетов winforms ReportServerCredentials
непосредственно. В вашем случае вы можете просто назначить NetworkCredential
Возражать ReportViewer.ServerReport.ReportServerCredentials.NetworkCredentials
,