- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试获取用户名参数并将其值替换为 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/
我正在尝试获取用户名参数并将其值替换为 session 的用户名,以便我可以传递给 DRL 内的存储过程以生成具有该用户名的表时间戳。参数“username”是 RDL 的参数之一,它带有默认值,我正
我是一名优秀的程序员,十分优秀!