SSRS 多列分组,总计和展开

SSRS Group on multiple colums, total and expand

在 ssrs 中,我有一个来自查询 (mssql db) 的数据集 returns 三列:

数据集1

timestamp
customer
product

我正在尝试显示一个 table,它按时间戳(仅限日期)和产品进行总计,并且时间戳在日期上折叠。参见示例 1。

Date                   Customer      product    total
+ 07/12/2016           Max           Fork       5
+ 07/12/2016           Max           Spoon      4
+ 07/10/2016           Jim           Knife      11
+ 06/02/2016           Steve         Fork       6

允许用户展开日期以查看确切时间戳的行,如下所示...

Date                   Customer      product    total
- 07/12/2016           Max           Fork       5
 07/12/2016 16:25:12   Max           Fork       1
 07/12/2016 13:11:02   Max           Fork       1
 07/12/2016 12:45:45   Max           Fork       1
 07/12/2016 10:33:20   Max           Fork       1
 07/12/2016 08:25:55   Max           Fork       1
+ 07/12/2016           Max           Spoon      4
+ 07/10/2016           Jim           Knife      11
+ 06/02/2016           Steve         Fork       6

我在这里和那里工作,但不是一起工作。任何帮助,将不胜感激。我对从头开始创建复杂的 table 相当陌生。谢谢。

我从这个示例数据集开始

Date    Customer    Product
2016-07-15 02:14:15.777 Max Fork
2016-07-15 03:14:15.777 Max Fork
2016-07-15 04:14:15.777 Max Fork
2016-07-15 05:14:15.777 Max Fork
2016-07-15 06:14:15.777 Max Fork
2016-07-15 03:14:15.777 Max Spoon
2016-07-15 04:14:15.777 Max Spoon
2016-07-15 05:14:15.777 Max Spoon
2016-07-15 06:14:15.777 Max Spoon

以下是我的处理方式

从报表上的空白 table 开始,设置其数据集(我的只是 DataSet1)。

现在先在详细信息行中输入。您没有表示要从数据库返回指标,所以我假设每条记录都是 1(?)。我这样设置 table:

渲染成这样

接下来,我们要创建一个 parent 组。使用 table selected,right-click "Details" 行组和 select 添加组 > Parent 组...

在分组依据框中,输入 =1。我们稍后会更改此设置。检查添加组 Header。单击“确定”。

这会在左侧添加一个我们不需要的新列,因此您可以删除该列(但只是列,而不是组!)。

结果应该是这样的:

返回行组区域,双击新组打开组属性。在 Group On 部分,将表达式从我们之前输入的“=1”更改为 this

=FORMAT(Fields!Date.Value, "MM-dd-yyyy")

接下来,将客户和产品添加为附加分组列,然后单击“确定”。

现在回到 table,将组的日期列单元格值设置为用于分组的同一表达式:

=FORMAT(Fields!Date.Value, "MM-dd-yyyy")

Customer 和 Product 相同,但在 Total 列中,将表达式设置为

=COUNT(1)

这是目前的预览

剩下要做的就是折叠组并创建它们以便切换。

单击要切换的文本框并记下文本框的名称。对我来说是 Textbox68.

Double-click详细信息行组再次打开属性。转到可见性部分。将其设置为 "Hide",并检查 "Display can be toggled by this report item:"。 Select 适当的文本框(在我的例子中是 Textbox68)

这是预览