我有3种不同的下拉选项。如果我一次选择一个选项,它会起作用,但是如果选择多个,则会引发错误。这三个标签指的是三个不同的版本。一切正常,但是当我在下拉列表中选择多个选项时,它崩溃。需要帮助,了解原因
这三个参数是 全选: 报告1 报告2 报告3
这是我的查询:
SELECT
ServerInfo.Version,
ServerInfo.Type,
ProjInfo.ProjName,
ServerInfo.ServName
FROM
ProjInfo, ServerInfo
WHERE ServerInfo.Version LIKE('%'+@ServerReport+'%')
在报表处理期间发生错误。 (rsProcessingAborted)
答案 0 :(得分:0)
这里的问题是查询期望一个字符串值,但是当选择了多个倍数时,报表将向它发送一个值数组。
在数据集属性的参数标签中,像这样更新表达式:
="," & Join(Parameters!ServerReport.Value, ",") & ","
这会将所选值组合成一个逗号分隔的字符串。
像这样更新您的WHERE
子句:
@ServerReport like '%,' + ServerInfo.Version + ',%'
这允许它扫描参数字符串中的版本字符串。连接参数和like
语句外部的逗号可防止它无意中匹配部分字符串。
说明:
所有这些都假设您实际上首先需要like
语句。通常你会说:
ServerInfo.Version IN (@ServerReport)
这将接受多个值,而没有任何其他更改。但是字符串必须完全匹配。