Я пытаюсь получить параметр имени пользователя и заменить его значение именем пользователя сеанса, чтобы я мог перейти к хранимой процедуре внутри DRL для создания метки времени таблицы с этим именем пользователя. Параметр «имя пользователя» — это один из параметров RDL, который имеет значение по умолчанию, и я пытаюсь изменить его с помощью следующего кода.
Замена одного из ReportParameters:
var userParameter = GetUserParameter();
if (userParameter != null)
{
newParameters.Remove(newParameters.FirstOrDefault(param => param.Name.Contains(CurrentUserParameterName)));
newParameters.Add(userParameter);
}
Поиск имени пользователя ReportParameters:
var paremeters = ReportViewer.ServerReport.GetEditableHiddenParameters();
//finds parameter by its name, pelase view const value in CurrentUserParameterName
var userParameter = paremeters.FirstOrDefault(param => param.Name.Contains(CurrentUserParameterName));
if (userParameter != null)
{
userParameter.Values.Clear();
userParameter.Values.Add(Utils.GetUserName());
}
return userParameter;
Установите параметры для ServerReport:
ReportViewer.ServerReport.SetParameters(parameters);
После запуска отчета я получаю сообщение "Параметр "имя пользователя" не имеет значения"
Когда я отлаживаю и смотрю в ServerReport.GetParameters()
, я вижу, что у меня есть ReportParameter «имя пользователя», у меня есть значения (новые значения), но его состояние — «MissingValidValue».
Что я делаю неправильно? Заранее спасибо, Эдди