2015-05-04 133 views
0

在我的报告中,我有两个参数。 一个用于从列表中选择订单号(下拉列表),另一个用于输入订单号。这个想法是让最终用户选择订单号或键入它,而不是两个... 有没有一种方法可以在选择列表项时清空文本框,反之亦然,例如从列表项中选择一个空值一旦订单号码被输入,下拉列表?我想过使用代码,但是一旦按下“查看报告”按钮,就不可能确定要使用哪个参数。SSRS - 实现参数约束

对这种情况的任何其他方法都非常欢迎。

在此先感谢您的答复。

回答

1

定义参数

让我们假定允许用户输入订单号被称为typed_value并允许用户从列表中选择一个项目被称为第二个参数的第一个参数list_value

从当值在

类型使用

阻止列表添加以下到填充list_value

WHERE @typed_value IS NULL 

这将防止在返回任何记录查询的WHERE子句typed_value不为NULL,阻止客户从列表中选择订单,如果他们已经键入订单。

更新list_value与typed_value

上面的代码将只删除列表中的项目,但要获得该列表来填充类型值这个工会添加到填充list_value查询

UNION SELECT @typed_value WHERE @typed_value IS NOT NULL 

如果用户离开typed_value NULL,那么他们可以从list_value中选择任何值。如果用户键入一个值,该列表将自动替换为他们的typed_value。

要使用哪个值?

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

理顺UX

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

还设置list_value到@typed_value默认值将自动设置list_value任何值客户类型英寸

+0

谢谢,这个伟大的工程!快速跟进问题:有没有办法将两者结合起来?即从列表中选择一个值或在同一个“框”中键入一个值。 – Makki

+0

我不知道在默认的SSRS报告显示中做到这一点的方法。但是,如果您使用Web表单报告查看器提供SSRS报告,则可以将参数设置为隐藏,然后设置您自己的UI以传入参数值。 –