将列组中的总计显示为行

Show total from column group as row

我正在尝试获取包含 SSRS 列组总计的行。这是我的报告:

+-----------+---------------------------+--------------------------+--------------+
|           |        John Doe           |       Brody Shaffer      | Kerry Morrow |
+-----------+-------------+-------------+-------------+------------+--------------+
|    Date   |  Project 1  |   Project 2 |  Project 3  | Project 5  |   Project 4  |
|  1/1/2020 |  $ 2.512,20 |  $ 3.230,00 |         $ 0 |        $ 0 |    $ 200,00  |
|  2/1/2020 |         $ 0 |         $ 0 | $ 35.504,00 | $ 5.200,30 |  $ 3.400,00  |
|  5/1/2020 |  $ 6.640,90 |    $ 987,00 |  $ 1.879,00 |        $ 0 |         $ 0  |
| 15/1/2020 |    $ 650,50 |         $ 0 |         $ 0 |        $ 0 |         $ 0  |
.
.
.

我想要这一行:

.
.
.
+-----------+-------------+-------------+-------------+------------+--------------+
| Total     |       $ 14.020,6          |        $ 42.583,3        |  $ 3.600,00  | 
+-----------+---------------------------+--------------------------+--------------+

行示例:

+---------------+-----------+-----------+-------------+
|   Customer    |    Date   | Project   |    Budget   |
+---------------+-----------+-----------+-------------+
|   John Doe    |  1/1/2020 | Project 1 |  $ 2.512,20 |
|   John Doe    |  1/1/2020 | Project 2 |  $ 3.230,00 |
|   John Doe    |  5/1/2020 | Project 1 |  $ 6.640,90 |
|   John Doe    |  5/1/2020 | Project 2 |    $ 987,00 |
|   John Doe    | 15/1/2020 | Project 1 |    $ 650,50 |
| Brody Shaffer |  2/1/2020 | Project 3 | $ 35.504,50 |
| Brody Shaffer |  2/1/2020 | Project 5 |  $ 5.200,30 |
| Brody Shaffer |  5/1/2020 | Project 3 |  $ 1.879,00 |
| Kerry Morrow  |  1/1/2020 | Project 4 |    $ 200,00 |
| Kerry Morrow  |  2/1/2020 | Project 4 |  $ 3.400,00 |
+---------------+-----------+-----------+-------------+

这是我的行组:

Date

这是我的专栏组:

Customer
  Project

当我为 "Customer group" 添加 "total" 时,visual studio 添加一个新列,但我需要一个包含总数据的新行。

这可能吗?

在 Visual Studios 的底部,应该有矩阵的 "Row Groups" 和 "Column Groups" 分解。 Select 你的矩阵,这应该在你的矩阵中填充适用的组。右键单击 "Row Groups" 部分中您想要总计的记录,然后单击 "Add Total" 选项,然后您只需选择是否希望总计行位于数据之前或之后。

我认为不可能得到您想要的结果,因为据我所知,您不能跨列组合并单元格。但是,我们可以接近。

有两种方法可以做到这一点。

选项 1:这是最简单的,但意味着总计出现在客户名称和项目名称之间。为此,只需右键单击 "Customer name" 单元格并执行 "Insert Row => Inside Row - Below"。将表达式简单地设置为

=Sum(Fields!Budget.Value)

选项 2:这需要更多工作,但更接近您想要的输出。

首先,右键单击详细信息行中的一个单元格,然后执行 "Insert Row => Outside group - Below" 在新行中,将单元格表达式设置为

=Sum(Fields!Budget.Value, "Customer")

我们包含范围 "Customer",因此客户列组中的所有值都将被求和,如果您省略此范围,则它只会在每个项目中聚合。

如果您 运行 报告,您会看到您有重复的数字,但我们只想显示一个。我们可以通过检查项目列是否与客户组中的第一个项目列匹配来解决这个问题。

将单元格表达式从我们刚刚设置的更改为这个..

=IIF(
    FIRST(Fields!Project.Value) = FIRST(Fields!Project.Value, "Customer"),
    Sum(Fields!Budget.Value, "Customer"),
    Nothing
    )

现在我们只得到一次显示的值,但单元格之间有一条可见的线,我们可以用类似的方法解决这个问题。

在单元格属性中,将 BorderStyle - Default 保留为 "Solid",但将 BorderStyle - Left 更改为 "None"。 接下来将 BorderStyle - Right 属性 设置为以下表达式。

=IIF(
    FIRST(Fields!Project.Value) = FIRST(Fields!Project.Value, "Customer"),
    "None",
    "Solid"
    )

这样做是检查项目是否与客户中的第一个项目(即左列)相匹配,并相应地设置边框样式。

除了总和预算值看起来向左偏移之外,最终输出应该是您想要的。

虽然我不确定是否有更好的解决方案...

这是最终的设计和输出,同时显示了选项 1 和 2。

设计视图

输出