不在 SSRS 中的参数选择范围内时,从总和中排除值

问题描述 投票:0回答:1

我有一份报告,其中显示每一行并按行项目细分总和。即:

类别 田野 总计数
A 猫 A 50
A 猫 B 100
B 猫 C 50
B 猫 D 25

A类总计:150
B 类总计:75

全部总数:225

每行总计列出如下:

sum(iif(Fields!Field.Value = "A",1,0))

所以总共有 50 个“A”。等等。每个类别的总数是

sum(iif(Fields!Category.Value = "Cat A",1,0))

那么总计的话就是

sum(iif(Fields!Category.Value = "Cat A",1,0)) + Sum(iif(Fields!Category.Value = "Cat B", 1, 0))

这一切都很好。但是,我有一个参数来选择所需的字段。有没有办法从总数中排除某个字段的总数?因此,如果有人选择字段参数中除“A”之外的所有字段,我希望看到以下内容:

类别 田野 总计数
A 猫 B 100
B 猫 C 50
B 猫 D 25

A 类总计:100
B 类总计:75

全部总数:175

这可能需要一些花哨的步法吗?

我确实尝试了一些不同的行可见性设置步骤,因为我不想显示字段参数中未选择的行,但不确定如何合并。这是行级别的可见性设置:

iif(
    InStr(Join(Parameters!Category.Label,","),"Cat A") > 0
    and InStr(Join(Parameters!Field.Label,","),"A") > 0
,false,true)
reporting-services
1个回答
0
投票

SUM 表达式应该检查参数和行以便对其进行计数。

=Sum(iif(InStr(Join(Parameters!Category.Label, ","), "Cat A") > 0, 1, 0) * iif(InStr(Join(Parameters!Field.Label, ","), "A") > 0, 1, 0) * Iif(Fields!category.Value="Cat A",1,0) * Iif(Fields!field.Value="A",1,0))

enter image description here

对于 CatA、CatB 和 CatA + CatB 的总计,您可以使用如下所示的 ReportItems 表达式

=ReportItems!Textbox15.Value + ReportItems!Textbox18.Value

enter image description here

最终结果如下图所示(为了演示我将所有行保留为可见的总数)

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.