gpt4 book ai didi

c# - SSRS 以编程方式设置参数导致状态 ValidValueMissing

转载 作者:太空狗 更新时间:2023-10-29 21:35:59 25 4
gpt4 key购买 nike

我正在尝试获取用户名参数并将其值替换为 session 的用户名,以便我可以传递给 DRL 内的存储过程以生成具有该用户名的表时间戳。参数“username”是 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“用户名”,我确实有值(新值),但它的状态是“缺少有效值”。

我做错了什么?提前致谢,艾迪

最佳答案

感谢这篇文章,我终于设法解决了这个问题:http://technet.microsoft.com/en-us/library/dd220464.aspx

If you have specified available values for a parameter, the valid values always appear as a drop-down list. For example, if you provide available values for a DateTime parameter, a drop-down list for dates appears in the parameter pane instead of a calendar control. To ensure that a list of values is consistent among a report and subreports, you can set an option on the data source to use a single transaction for all queries in the datasets that are associated with a data source.

由于除了将其放入“默认值”之外,我还在“可用值”选项中输入了一个默认值,因此报告试图验证新的 session 用户名,该用户名未被列为“可用值”。一旦我删除了“可用值”中的值,我在代码隐藏中提供的新 ReportParameter 就不必进行验证,并且报告会成功呈现。

关于c# - SSRS 以编程方式设置参数导致状态 ValidValueMissing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7377016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com