我有 2 个报告参数,分别是 customerNumber 和 customerName。用户必须输入一个或另一个 - 不能同时输入,因此在第一个输入的文本将禁用第二个参数,反之亦然。
这可以使用数据集或如何链接两者来完成,以便其中只有一个接受值?
非常感谢
我有 2 个报告参数,分别是 customerNumber 和 customerName。用户必须输入一个或另一个 - 不能同时输入,因此在第一个输入的文本将禁用第二个参数,反之亦然。
这可以使用数据集或如何链接两者来完成,以便其中只有一个接受值?
非常感谢
我不“认为”你能做到这一点。
您可以模拟一个基于另一个被禁用的方法,但您只能以我认为的一种方式执行此操作,否则您将有一个循环引用。
想象一下您的 customerName 数据集看起来像
IF @customerNumber IS NULL
BEGIN
SELECT '' as customerName
END
ELSE
BEGIN
SELECT DSITINCT customerName from myTable
END
这没关系,但是您不能对 customerNumber 参数的数据集执行相同的操作,因为它必须引用 customerNumber 参数,然后我们再次进行。
其他选择?
假设您希望用户提供姓名或号码但不能同时提供,您可以使用单个字段来输入姓名/号码,然后使用包含您想要的实际值的列表。
所以第一个参数customerSearch
是纯文本单值。
第二个参数“customerNumber”可用值的数据集可能如下所示
SELECT customerName, customerID
FROM myTable t
WHERE customerName LIKE '%' + @customerSearch + '%'
OR customerID = @customerSearch -- CAST the parameter if required
将参数设置为多值,并可选择将默认值设置为同一数据集。
不理想,但也许是一个合理的妥协。