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 设置为客户输入的任何值。
在我的报告中,我有两个参数。 一个用于列表(下拉列表)中订单号的 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 设置为客户输入的任何值。