【发布时间】:2019-03-04 12:14:15
【问题描述】:
我有一个报告,我需要能够显示 1 个必需参数的所有值,或者能够在可选参数中键入一组值。
第一个参数(必需):制造商。
第二个参数(可选):将该制造商的所有零件留空,或者能够输入 5 个以上不同的零件号并仅显示这些零件号。
我无法使用可用值列表,因为我的数据库中有 100,000 个或更多部件。如果没有使用可用值的解决方法,我不能将 Null 与多个值一起使用。我在研究中看到了那个。最终用户不希望子查询拉出零件编号列表供他们排序以选择他们想要的内容。
当我将@Part 留空或放入 1 个部件号时,它会按预期工作。
当我运行超过 1 个部分时出现错误。错误内容为:“报告处理期间发生错误。(rsProcessingAborted) 数据集“DataSet1”的查询执行失败。 (rsErrorExecutingCommand) 在预期条件的上下文中指定的非布尔类型表达式,靠近 ','。"
这是我认为相关的代码。
(SELECT branch, mfg, part
FROM partact
WHERE mfg IN (@Mfg) AND
(part IN (@Part) OR @Part IN (''))) a
它是较大查询的一部分,但较大的查询似乎工作正常,因为它在空白和 1 部分时工作。
到目前为止我测试过的内容: 将@Part IN ('') 交换为 @Part = ''
以几种方式交换括号。它处理得很好,就像现在设置的那样。
【问题讨论】:
-
我也对此进行了测试。 =Join(Parameters!TestCase.Value, ",") 使用它作为参数表达式。也尝试了拆分。
标签: sql-server reportbuilder3.0