Проблема параметров SSRS с ReportViewer - PullRequest
0 голосов
/ 08 октября 2009

У меня есть приложение Winforms, которое использует элемент управления ReportViewer для отображения отчетов SSRS. У меня есть один отчет со многими параметрами, которые должны быть установлены пользователем. Я специально установил один из параметров, чтобы он не имел значения по умолчанию, чтобы подсказки параметров отображались в средстве просмотра отчетов до запуска отчета.

Однако, когда отображается средство просмотра отчетов, подсказки параметров не отображаются, и появляется сообщение:

Для этого отчета требуется значение по умолчанию или пользовательское значение для отчета. параметр 'ReservationStatus'. Чтобы запустить или подписаться на этот отчет, Вы должны предоставить значение параметра.

Если я сделаю ReportViewer.RefreshReport(), отобразятся подсказки. Однако я не хочу вызывать это, потому что я также вызываю метод ReportViewer.SetDisplayMode(), чтобы перевести его в режим печати. Этот метод предположительно вызывает метод RefreshReport().

Кроме того, кнопка Show / Hide Parameter отображается серым цветом при первом отображении формы. Если я нажимаю кнопку обновления, то кнопка параметра включена. Это если зритель не выбирает параметры, пока не будет вызвано обновление.

Может кто-нибудь объяснить, почему я не могу сначала просто запросить у зрителя параметры, а затем попытаться обновить / запустить отчет?

1 Ответ

0 голосов
/ 30 июля 2010

Установка свойства ReportViewer.Messages в элементе управления отчетом вызывает обновление панели параметров. Мне удалось заменить RefreshReport следующим образом:

ReportViewer.Messages = ReportViewer.Messages

Поездка в .NET Reflector объясняет, почему:

  • ReportViewer.Messages вызывает rsParams.ApplyCustomResources
  • rsParams.ApplyCustomResources вызывает rsParams.EnsureParamsLoaded

Единственным другим методом, который вызывает rsParams.EnsureParamsLoaded, является RefreshReport. И метод Private, поэтому нет надежды на использование наследования. Установка сообщений для себя, хотя и крайне ненадежная, - это единственный обходной путь, который я могу найти.

...