SSRS 报告矩阵中的列分组

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

我正在尝试对 SSRS 报告中的列进行分组。 我设法使用 Matrix 显示第一级列组。 现在我需要最后的总计。

有人可以帮我解决这个问题吗?

Need to display total as shown in the below Image

通过矩阵分组,我得到了第一部分

Result

现在我需要添加每个国家/地区的总计 Desired Output

reporting-services
1个回答
0
投票

你无法完全做到这一点,但你可以接近。不要担心答案的长度,这里有很多图片和两个部分解决方案,都很简单。

您可以采取两种方法,第一种更接近您的要求,但需要更多工作,第二种非常简单,但意味着在数据上方显示总计。

在这个示例中,我从一些示例数据开始(我在国家/地区名称前面添加了空格,作为对列进行排序的一种廉价且令人讨厌的方式,以便它们看起来像您的示例)

DECLARE @t TABLE(Country varchar(20), City varchar(20), Company varchar(20), Amount int)

INSERT INTO @t VALUES 
('  UK', 'London', 'Company 1', 2),
('  UK', 'Manchester', 'Company 1', 3),
('  UK', 'London', 'Company 2', 3),
('  UK', 'Manchester', 'Company 2', 2),

(' France', 'Lyon', 'Company 1', 1),
(' France', 'Lyon', 'Company 2', 1),

('Germany', 'Munich', 'Company 1', 0),
('Germany', 'Munich', 'Company 2', 0)

SELECT * FROM @t

因此,以此作为数据集,我在报告中添加了一个矩阵。将公司拖到行占位符,将城市拖到列占位符,将金额拖到数据占位符,到目前为止很简单。

接下来,我右键单击主设计器下行组窗格中的“公司”行组,然后选择“添加总计 - 之后”。

设计看起来像这样..

如果我们查看到目前为止的报告,我们只是得到一个带有列总计的简单矩阵..,而不是您想要的..


选项 1:


接下来,我右键单击“城市列组”并执行“添加组 - 父组”并选中“添加组页脚”选项

现在我们得到了总数,但它们仍然只是每个城市的。

但是,如果我们更改底部总计中的表达式并将表达式的范围设置为“国家/地区”列组,如下所示..

=Sum(Fields!Amount.Value, "Country")

我们现在明白了..

最后,我们可以通过将

HideDuplicates
属性设置为
Country
(我们之前在表达式中使用的列组的名称)来隐藏重复项

不完美也许可以接受?


选项2:


另一个选项是将总计移至顶部,直接位于国家/地区名称下方。为此,右键单击“城市”文本框,然后执行“插入行 ==> 内部组 - 下面”

在新行中,从城市正下方的文本框中的下拉菜单中选择“金额”,最后将所有内容居中以整理..

最终设计如下(两种方法都使用)

这给了我们这个输出

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