如何确定Reporting Services中显示的分组的哪个值

时间:2018-11-21 18:11:53

标签: reporting-services visual-studio-2015

我有一个报告,其中最高级别的详细信息会生成数据集的两行,我需要对它们进行分组显示。分组工作正常,但少数列仍包含不同的值;如何告诉报告应显示哪个值?

示例: 用户希望按品牌名称对报告的每一行进行分组。 1品牌可以具有与要在报告中显示的数字相关的多个协议。可以汇总数字,但是新协议还更改了数据,因此只需要显示最新版本即可。

协议1:项目A,项目B,价值A 协议2:项目B,项目C,价值B

按品牌分组应显示: 约定:项目B,项目C,总和(值A + B)。但是我不知道如何告诉报告要显示哪些项目。

不应修改数据集的SQL,以维护报表中的选项以同时显示两行。

任何帮助将不胜感激:)

谢谢

1 个答案:

答案 0 :(得分:0)

如果它是字符串,则可以适当地使用聚合First()Last()

但是有一种解决方法。您必须在数据集中定义一个计算字段,然后将所需的表达式写入其中。可以将其视为评级系统。最大的价值是您将在分组中选择的值,因为在分组中,您只需要使用Max()

例如作为计算字段(这是字符串的示例,您还可以将其转换为double并使用>或<,这取决于您对ItemA值的变化):

'Calculated field name: CustomField
=Switch(Fields!ItemA.Value = Nothing, 1,
        Fields!ItemA.Value = "500", 2, 
        Fields!ItemA.Value = "1000", 3)

现在添加您的分组,并在分组中选择计算字段,如下所示:

Max(Fields!CustomField.Value)

然后隐藏Fields!CustomField.Value并显示Fields!ItemA.Value。这样,它将显示Fields!ItemA.Value的行值,并且您可以自定义在Fields!CustomField.Value之后的分组。