如何处理SSRS中没有值的参数

时间:2013-06-17 15:33:12

标签: reporting-services

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

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

1 个答案:

答案 0 :(得分: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构造返回一个虚拟行 - 这样即使没有匹配,你总是会返回至少一行为第一个参数值。

您可以在报告中稍后按要求处理这些虚拟行。

如上所述,这是解决您的具体问题的解决方法,但希望能提供一些帮助。

评论后添加:

我刚刚测试过 - 它与多值参数的工作原理相同;只需将=@Param1更改为in (@Param1)

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

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