如何在SSRS子报表中设置一个静态列表

时间:2017-01-10 14:21:22

标签: reporting-services ssrs-2008-r2 subreport

我有一份使用钻取子报告的SSRS报告。 子报表在主报表中使用了3次,并带有几个参数。 在2个子报表中,我使用静态值女性男性设置了一个参数 SexAtBirth 。 以下是参数的屏幕截图: enter image description here

对于第3个子报告,我想将参数 SexAtBirth 设置为Not Male or Female。在SQL中它将是SexAtBirth NOT IN ('Female', 'Male')

参数 SexAtBirth 设置为采用多个值 我不知道如何创建表达式而不包含静态值列表。

更新 我正在尝试为值创建静态列表,错误为SexAtBirth parameter missing a value 我在SQL Server 2008 R2上使用Report Builder 3.0。 这是我尝试过的: 在下拉列表中:

"Female", "Male"

Female, Male

1 个答案:

答案 0 :(得分:0)

我做了类似的事情,我使用活动目录来过滤报告(管理员除外)。在此示例中,@ UserID是域用户的名称,来自浏览器会话。

Where t.[Date] Between @DateFrom And @DateTo And
(u.adsGuid = @UserID OR @UserID In (@UserAdmins))

但是,我基本上在SSRS中使用不同的参数来为另一个参数提供输入。这可能不是必需的。为了便于阅读并让我的思路远离逆逻辑,我会尝试类似下面的内容:

WHERE AgeRange = @AgeRange AND 
    Coalesce(SexAtBirth, '') = Case @SexAtBirth 
        When 'Male' Then 'Female' 
        When 'Female' Then 'Male' 
        Else Coalesce(SexAtBirth, '') End

这应该处理任何NULL并提供反向结果。如果@SexAtBirth不是男性/女性,请给我们休息。