SSRS 2008 R2: программно установить выбранное значение в раскрывающемся списке - PullRequest
1 голос
/ 29 июля 2011

У меня есть отчет, который содержит раскрывающийся список пользователей. Я хочу, чтобы текущий зарегистрированный пользователь был выбран по умолчанию.

Раскрывающийся список имеет значения UserId и UserName. Я попытался сделать следующее, но не повезло:

ReportViewer.ServerReport.SetParameters(new ReportParameter("SelectedUserId", CurrentUser.Id.ToString()));

Я могу сделать это с помощью JavaScript в качестве крайней меры, но есть ли способ сделать это на стороне сервера?

Спасибо

Обновление:

UserId является первичным ключом пользовательской таблицы и не может быть получен из имени пользователя, вошедшего в систему ... это то, что вы предлагаете?

Хотя я и не понял, что могу поставить туда запрос. У меня есть CurrentUserId в качестве внутреннего параметра, который я использую в качестве параметра моего SP, который заполняет раскрывающийся список.

Я использую это для установки значения по умолчанию: = Параметры! CurrentUserId.Value

, который работает в Visual Studio и диспетчере отчетов со значением CurrentUserId по умолчанию. Однако в отчете для CurrentUserId задано:

ReportViewer.ServerReport.SetParameters(new ReportParameter("CurrentUserId", CurrentUser.Id.ToString()));

, который, кажется, устанавливает его слишком поздно, чтобы установить его в раскрывающемся списке.

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Откройте форму редактирования параметров отчета и задайте незапрошенное значение для раздела «Значения по умолчанию» параметра id пользователя:

=User!UserID

Обратите внимание, что это сравнение с учетом регистра: если ваш список UserId указан в заглавных буквах, а вход в сеть - в нижнем регистре, поиск значения параметра завершится неудачно.

Кроме того, у вашей сетевой учетной записи может быть домен, который не отображается в вашем списке идентификаторов пользователей - если это так, вам придется удалить его.

Например, допустим, ваш логин в сети прописан в нижнем регистре и имеет домен, а список идентификаторов пользователей - в верхнем регистре без домена. Для незапрашиваемого значения параметра по умолчанию вы должны использовать выражение вроде:

=Ucase(Replace(User!UserID, "MYDOMAIN\", ""))
0 голосов
/ 01 августа 2011

Работает:

Шаги:

Добавить CurrentUserId в качестве параметра.

Для пользователя в раскрывающемся списке установите значение по умолчанию:

=Parameters!CurrentUserId.Value

Затем на странице контейнера:

ReportViewer.ServerReport.SetParameters(new ReportParameter("CurrentUserId", CurrentUser.Id.ToString()));

Это не работало при запуске в контейнере ранее ..., но сейчас ...

...