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)
这是预览
在 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)
这是预览