SSRS - 实现参数约束

时间:2015-05-04 12:10:01

标签: reporting-services reporting ssrs-2012

在我的报告中,我有两个参数。 一个用于从列表(下拉列表)中选择订单号,另一个用于键入订单号。我们的想法是让最终用户选择订单号或输入订单号,而不是两者都... 有没有办法在选择列表项时清空文本框,反之亦然,即在键入订单号后从下拉列表中选择空值?我想过使用代码,但是一旦"查看报告"就不可能确定使用哪两个参数。按钮已被按下。

非常欢迎任何其他解决此问题的方法。

提前感谢您的回复。

1 个答案:

答案 0 :(得分:1)

定义参数

假设第一个允许用户输入订单号的参数称为 typed_value ,第二个允许用户从列表中选择项目的参数称为 list_value

如果在

中输入值,则阻止使用列表

将以下内容添加到填充list_value

的查询的where子句中
WHERE @typed_value IS NULL

这将阻止在typed_value不为NULL时返回任何记录,阻止客户从订单中选择订单(如果订单已经输入)。

使用typed_value更新list_value

上面的代码只会删除列表项,但要使列表填充类型值,请将此联合添加到填充list_value的查询

UNION SELECT @typed_value WHERE @typed_value IS NOT NULL

如果用户将typed_value留空,则可以从list_value中选择任何值。如果用户键入值,则列表将自动替换为其typed_value。

使用哪个值?

您可以从list_value中关闭报表过滤器并忽略typed_value,因为如果用户在typed_value中输入任何值,则list_value将更新为typed_value。

平滑用户体验

确保参数typed_value允许空值。将typed_value的默认值设置为NULL可能是个好主意,以便用户可以在报告首次加载时查看列表值。

同样将list_value的默认值设置为@typed_value会自动将list_value设置为客户键入的任何值。