我想獲取用戶名的參數並用會話的用戶名替換它的值,以便我可以傳遞給DRL中的存儲過程以使用此用戶名生成表時間戳。 參數「username」是RDL的默認值的參數之一,我試圖用下面的代碼對其進行更改。以編程方式使SSRS設置參數導致狀態ValidValueMissing
更換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」。
我在做什麼錯? 由於提前, 埃迪
看起來有一個名爲ValidValues的成員,其當前用戶名值和另一個名爲values的成員是空的。 –