SSRS 2012 Report Items -- 矩阵

简介:

SSRS 2012 Report Items -- 矩阵

 

矩阵数据区域与我们所熟悉的数据透视表(Pivot Table)和交叉报表(Cross-Tab Report)的功能类似,相较于数据表是一维的数据,只能指定固定的数据列,来自动态的明细数据行,利用矩阵可以动态显示数据行与数据列,并且其内容可以随着数据内选项而动态增加。所以,它可说是二维的数据展现形式,让我们能够很容易地从数据行与数据集的交集中查看对应的汇总信息。

 

目前Reporting Services对于矩阵提供的设置属性与数据表相同。

 

建议矩阵


矩阵所要达到的效果,说穿了等于是在Tablix中的动态数据行组所得到的结果应用在横轴与纵轴。只不过从数据表开始还有一段漫长的加入组,以及删除明细数据列的过程。使用矩阵就显得简单多了。在此先示范利用与之前相同的数据源来设计矩阵报表。

 

首先,请先设置报表层级的数据源与数据集,再从工具箱中拖拉“矩阵(Matrix)”至报表主体,接下来,请将[PRODUCTCATEGORY_NAME]拖拉至数据行处,将[TRX_YEAR]拖拽至数据列处,至于销售金额以及销售数量则是拖放至“数据(Data)”区域。

 

clip_image002[4]

 

拖放完成后,请将[PRODUCTCATEGORY_NAME]列表头改为中文。不过,可发现销售金额以及销售数量并没有对应的说明表头,因此需要手动加入。请同时点选销售金额及销售数量单元格后右击,选择“Insert Row”、“OutSide Group - Above”。

 

clip_image004[4]

 

请在新增的数据列加入表头说明。

 

clip_image006[4]

 

切换至预览标签页。可另外使用格式化属性以调整矩阵的外观。

 

clip_image008[4]

 

矩阵组


事实上,将数据集的列拖拽到“数据行”或“数据列”中,就等同于依照所拖放的列在矩阵中建立数据组,矩阵中包含了“数据行组”以及“数据列组”。设计者可以在下方的数据列组以及数据行组面板进行组属性的设置,或是新增删除组结构。

 

原来报表中只有“产品大类”的数据列组,如果希望再加入一层“产品中类”的组时有两种方式,一种是右击原有的“产品大类”的数据列组,选择“Add Group”、“Child Group”。另一种则是从下方数据列群组面板右击“ProductCategoryName”组,选择“Add Group”、“Child Group”,两种方式都设置后都是将子组依据设为[ProductSubcategoryName],如此,即可新增产品种类的子组。

 

clip_image010[4]

 

clip_image012[4]

 

预览后结果如下:

 

clip_image014[4]

 

数据列是以两层的结构来显示产品大类与产品中类间的层次关系。不过,这种显示模式当层次数过多时可能会造成画面膨胀,进而让使用者不易阅读的缺点。在此介绍利用Tablix才能实作出的缩排式组报表(在报表生成器中称之为阶梯式层次),就能利用最经济的空间来显示层次关系。

 

首先,在下方数据行组面板中右击“产品中类”子组(PRODUCTSUBCATEGORY_NAME),选择“Add Total”、“Before”,此时,会在数据行上方加入总计行。

 

clip_image016[4]

 

接下来,将默认的“Total”替换为[ProductCategoryName](利用单元格右上方的列表切换)。接下来,请将第一列删除,同时将[ProductSubCategoryName]的“Padding”、“Left”属性修改为“12pt”,即可完成缩排效果。

 

clip_image018[4]

 

clip_image020[4]

 

预览以上设置的报表。

 

clip_image022[4]



















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


相关文章
|
6月前
|
Python
GEE—关于RSEI生态遥感指数中出现的问题 Layer error: Image.rename: The number of names (1) must match the number of..
GEE—关于RSEI生态遥感指数中出现的问题 Layer error: Image.rename: The number of names (1) must match the number of..
196 0
|
SQL 关系型数据库 MySQL
Influx Sql系列教程四:series/point/tag/field
influxdb中的一条记录point,主要可以分为三类,必须存在的time(时间),string类型的tag,以及其他成员field;而series则是一个measurement中保存策略和tag集构成;
397 0