Я пытаюсь получить параметр имя пользователя и заменить его значение с именем пользователя сеанса, поэтому я могу перейти к сохраненной процедуре внутри DRL, чтобы сгенерировать таблицу Timestamp с этим именем пользователя. Параметр «Имя пользователя» является одним из параметров 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 «Имя пользователя», у меня есть значения (новые значения), но его состояние - «ManuctsValyValue».
Что я делаю не так? Заранее спасибо, Eddie