SSRS - 实现参数约束

SSRS - Implementing a parameter constraint

在我的报告中,我有两个参数。 一个用于列表(下拉列表)中订单号的 selection,另一个用于输入订单号。这个想法是让最终用户 select 订单号或键入它,而不是两者...... 有没有一种方法可以在 selected 列表项时清空文本框,反之亦然,即在输入订单号后 select 从下拉列表中输入一个空值?我考虑过使用代码,但一旦按下 "view report" 按钮,就无法确定要使用两个参数中的哪一个。

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

提前感谢您的任何回复。

定义参数

假设允许用户输入订单号的第一个参数称为typed_value,第二个参数允许用户输入select列表中的一项名为 list_value.

防止在输入值时使用列表

将以下内容添加到填充 list_value

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

这将防止在 typed_value 不为 NULL 时返回任何记录,从而阻止客户 select 从列表中输入订单(如果他们已经输入了订单)。

更新 list_value 为 typed_value

以上代码只会删除列表项,但要获取列表以填充键入的值,请将此联合添加到填充 list_value

的查询中
UNION SELECT @typed_value WHERE @typed_value IS NOT NULL

如果用户将 typed_value 保留为 NULL,则他们可以 select 来自 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 设置为客户输入的任何值。