SSRS 2012 交互式报表 -- 父子式报表

简介:

SSRS 2012 交互式报表 -- 父子式报表

在多维度分析中,父子式维度是非常重要的维度结构之一。它可以用最精简的数据结构来处理层数过多、层数不对称以及层数不确定的结构。像是组织架构、会计科目或是制造业的物料表(BOM)都属于父子式层次。以下将示范如何利用SSRS设计父子式层次报表。

 

步骤1

首先,父子式层次一定需要符合以下原则。在数据表中,除了成员的键值之外,还要有另外一个字段用来表示父层成员的键值。

 

clip_image002

 

步骤2

首先,加入一个数据表,将员工名称与销售金额字段加入此数据表。

 

步骤3

建立以“EMPLOYEE_KEY”为基础的组,然后把详细信息删除。

 

clip_image004

 

步骤4

右击“EMPLOYEE_KEY”组,选择组属性,切换至“Advanced”标签页,在“Recursive parent”处下拉选择“MANAGER_KEY”。

 

clip_image006

 

步骤5

此时,可以删除系统自动产生的“EMPLOYEE_KEY”数据行,以及将报表稍作排版。

 

步骤6

如果希望视觉上能呈现出如树状规则结构,则必须通过缩排的方式来显示。所以,接下来需设置Padding的属性,在属性窗口中的“Padding”展开后的“Left”选项内撰写以下表达式。

=(2 + (Level()*20)) & “pt”

 

clip_image008

 

步骤7

以上的表达式是使用Level()函数来读取出这条规则所在的层级位置,然后根据层级所在位置设置留白的大小,以此段语法为例,层级一的规则会产生22pt的留白,而层级二会产生42pt (2 + (2*20))的留白,依次类推,即可完成非常漂亮的自动缩排的效果。

 

步骤8

接下来,依照之前介绍的原理,在此父子式维度上加入深化功能。也就是将可见性切换为隐藏,并将切换显示设置为“EMPLOYEE_NAME”。

 

clip_image010

 

步骤9

此时即可达成如下图所示的漂亮的父子式层次结构。

 

步骤10

不过,仔细一看有点怪怪的,怎么比较上层的员工都没有数字?那是因为比较上层的都是高级主管,高级主管都不会自己出去跑业务,而是下层的业务人员才会有销售业绩数字。但是在管理面上,高级主管要扛的销售数字就是下面业务人员的数字总和,因此我们的公式可以做以下调整:

 

加和

=Sum(Fields!SALES_AMT.Value,”EMPLOYEE_KEY”)

 

返回累加

=Sum(Fields!SALES_AMT.Value,”EMPLOYEE_KEY”,recursive)

 

步骤11

如此以来,即可产生正常的父子式层次报表了。

 

clip_image012

 

clip_image014














本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1612429 ,如需转载请自行联系原作者










相关文章