我有一个隐藏的整数数据类型参数。当我运行报告时,报告给我一个错误
参数 X 缺少值
但是,如果我使参数可见,它就可以工作。我尝试提供默认值 0 但这不足以满足我的要求,因为我的子报告(Drill-dowm)取决于此参数。请帮忙。谢谢!
我有一个隐藏的整数数据类型参数。当我运行报告时,报告给我一个错误
参数 X 缺少值
但是,如果我使参数可见,它就可以工作。我尝试提供默认值 0 但这不足以满足我的要求,因为我的子报告(Drill-dowm)取决于此参数。请帮忙。谢谢!
确保您没有为参数指定可用值。内部和隐藏参数的可用值应为“无”。
首先,
通过报告参数属性检查该参数的 -可用值。
不得指定任何值。所以我们应该将它设置为无
第二个解决方法是,
只需在报告参数属性内的默认值中的指定值处添加一个空格。
这肯定会奏效。希望它能节省您的时间。
我必须做一个“如果存在”声明才能消失。它对我有用,因为它使它始终返回一个值,即使我的查询不需要该值。
if exists (my select query)
my select query
else
select '2'
// '2' would never be used, but it made ssrs stop giving me
// the stupid error and execute the rest of the query
如果您从查询中指定可用值,则默认值必须在可用值列表中。(可用)中的默认值 = true。
如果您有一个参数依赖于另一个参数,而数据集查询中没有“默认值”并且不接受空值,也会出现问题。
例如:
参数 1有一个默认值:来自数据集“EmployeeSearch”的 NameEmployee
但是数据集“EmployeeSearch”在名为@Month 的查询中有一个过滤器或一个参数,用于指示月份的编号。所以如果@Month 的值为空,SSRS 会说“参数缺少值”。
只需添加 1 个默认值即可绕过此错误(即使永远不会使用该默认值)。
- 在该特定参数的“报告参数属性”下,转到“默认值”页面。
-切换“指定值”
- 添加一个值(我添加了:“just_a_filler_to_get_around_hidden_value_error”,所以当我稍后回顾它时,我记得我为什么要这样做)
- 单击确定
假设您遇到与我相同的问题,尝试使用 ReportViewer 组件在网页上运行报告,我设法通过null
在呈现报告之前添加一个参数来解决该问题:
C#代码:
var parameters = new List<ReportParameter>();
parameters.Add(new ReportParameter("ParameterName", (string)null));
ReportViewer1.ServerReport.SetParameters(parameters);
希望这会有所帮助
我想添加到 dmbreth 的正确答案。
我错过了参数的值仍然需要与某些东西相关联的概念。最初,我通过使用参数属性的可用值部分来绑定数据集的输出,但根据 dmbreth 的回答,情况并非如此。最后,我将输出相关性设置从“可用值”部分移至“默认值”部分,这样就成功了。
因此,总而言之,在参数属性对话框中:
常规页面 - 允许选中多个值(此选项特定于我的应用程序),参数可见性设置为内部
可用值页面 - 无
默认值页面 - 从查询中获取值,[适当的数据集,此处的值]
高级页面 - 这里没有意义
希望这足以让其他有同样问题的人受益......
我有一个类似的问题,SSRS 设置的默认值为 ,(Null)
但是我的报告不需要该参数;我发现它对测试过滤列表很有用,所以我保留了它,我想我可以在数据集配置的 SSRS 中删除它。但是我将其更改为=System.DBNull.Value
(我想这可能是任何表达式),这对我有用,所以如果需要,我仍然可以传入一个值并设置可用值(必须确保将 NULL 值添加到我的数据集),如果我决定在以后取消隐藏。
这里还有另一种潜力。我遇到过报表设计器工作但服务器报表对象没有工作的情况。解决方案是删除服务器对象,然后从设计器中重新保存。