我有一个表达式创建的数据集,该表达式采用了其他3个数据集中的参数。
我需要为此添加一个参数,以允许用户输入一个值,然后数据集会将该值添加到where子句中以过滤显示的结果。如果输入值“ Any”,那么将对Where子句的这一部分的结果进行过滤(如果这样的话)。
我编写了此代码并将其添加到表达式Where子句中,但是它不起作用。
+ IIf(Parameters!RCode.Value = "ANY", "", " AND h.rcode = " + Parameters!RCode.Value + " ")
如果需要的话,我可以提供其余的where子句,但是如果我删除此行,则整个工作正常,如果我添加此行,它将用
炸掉An error has occurred during report processing. (rsProcessingAborted)
Cannot set the command text for dataset 'DS'. (rsErrorSettingCommandText)
答案 0 :(得分:0)
在数据集查询中,可以通过在参数名称前添加@例如前缀来使用参数名称。 @RCode
要使其正常运行,您的WHERE子句应类似于(我假设您的列名是rcode):
WHERE ....
AND (@RCode = 'ANY' OR rcode = @RCode )
对于多值参数
WHERE ...
AND ('ANY' IN (@RCode) OR rcode IN (@RCode) )