0

我有一个包含两个数据集的报告。第一个数据集用于将参数填充到第二个数据集。一切正常,直到第一个数据集没有值,因此我得到一个参数 X 缺少值消息。

有没有办法解决这个问题?

4

1 回答 1

3

假设您正在使用Cascading Parameters,您可以使用类似于以下内容的查询来填充第二个参数的 DataSet:

if exists (select 1 from Param2 where paramVal = @Param1)
begin

    select paramVal, paramDetail
    from Param2
    where paramVal = @Param1

end
else
begin

    select paramVal = 'None', paramDetail = 'None'

end

这只是一种解决方法,if...else如果没有任何其他行要返回,则使用构造返回一个虚拟行 - 这样即使第一个参数值没有匹配项,您也将始终返回至少一个行。

您可以在报告后面根据需要处理这些虚拟行。

如上所述,这是解决您的特定问题的一种解决方法,但希望会有所帮助。

评论后补充:

我现在刚刚测试过——它与多值参数的工作原理相同;只需更改=@Param1in (@Param1).

如果在第二个 DataSet 中有一个或多个匹配项,则返回这些行,否则只返回虚拟行。

我确实需要在 VS 中关闭/重新打开报告,但这可能无关紧要。

于 2013-06-17T16:26:56.040 回答