Я пытаюсь получить параметр имени пользователя и заменить его значение именем пользователя сеанса, чтобы я мог перейти к хранимой процедуре внутри DRL, чтобы сгенерировать временную метку таблицы с этим именем пользователя.Параметр "username" является одним из параметров RDL, который поставляется со значением по умолчанию, и я пытаюсь изменить его следующим кодом.
Замена одного из параметров ReportParameters:
var userParameter = GetUserParameter();
if (userParameter != null)
{
newParameters.Remove(newParameters.FirstOrDefault(param => param.Name.Contains(CurrentUserParameterName)));
newParameters.Add(userParameter);
}
Поиск имени пользователя Параметры отчета:
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».
Что я делаю не так?Заранее спасибо, Эдди