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,

Другие вопросы по тегам