【问题标题】:Show total from column group as row将列组中的总计显示为行
【发布时间】:2020-01-28 02:24:56
【问题描述】:

我正在尝试使用 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

当我为“客户组”添加“总计”时,Visual Studio 添加了一个新列,但我需要一个包含总数据的新行。

这可能吗?

【问题讨论】:

    标签: reporting-services ssrs-tablix ssrs-grouping


    【解决方案1】:

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

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

    选项 1:这是最简单的,但表示总计显示在客户名称和项目名称之间。为此,只需右键单击“客户名称”单元格并执行“插入行 => 内行 - 下方”。将表达式简单地设置为

    =Sum(Fields!Budget.Value)
    

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

    首先,右键单击详细信息行中的单元格并执行“插入行 => 外部组 - 下方” 在新行中,将单元格表达式设置为

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

    我们包含“客户”范围,因此客户列组中的所有值都会相加,如果您省略此范围,那么它只会在每个项目中聚合。

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

    将单元格表达式从我们刚刚设置的内容更改为 this..

    =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。

    设计视图

    输出

    【讨论】:

      【解决方案2】:

      在 Visual Studios 的底部,应该有矩阵的“行组”和“列组”细分。选择您的矩阵,这应该填充矩阵中的适用组。右键单击“行组”部分中您想要总计的记录,然后单击“添加总计”选项,然后您只需选择是否希望总计行位于数据之前或之后。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-24
        • 2020-05-10
        • 2018-03-31
        • 2020-02-15
        • 2017-01-13
        • 1970-01-01
        • 2021-08-12
        相关资源
        最近更新 更多