首页 > 代码库 > 【Reporting Services 报表开发】— 矩阵的使用

【Reporting Services 报表开发】— 矩阵的使用

矩阵,相较于数据表示一维的数据,只能指定固定的数据列,来呈现动态的明细数据行,所以,它可以说是种二维的数据展现形式,让我们能够很容易地从数据行和数据集的交替中查看对应的汇总信息。像SQL Server中的行专列就可以利用矩阵来实现其功能。

一、打开 SQL Server Business Intelligence Development Studio,新建项目—>商业智能项目—> 报表服务器项目,命名为CH3

二、在报表文件夹下面,添加—>新建项。命名为PirvotTableTest,如图1和图2

   

                    图 1

 

                                                     图 2

 三、添加数据源、添加数据集。这里不知道可以参考 : 【Reporting Services 报表开发】— 总结

这里数据集的SQL语句:

/****** SSMS 中 SelectTopNRows 命令的指令碼  ******/
SELECT 
YEAR(TRX_DTE) AS TRX_YEAR,
DATEADD(dd,1-DAY(TRX_DTE),TRX_DTE) AS TRX_MONTH,

C.PRODUCTSUBCATEGORY_KEY,
C.PRODUCTSUBCATEGORY_NAME,
D.PRODUCTCATEGORY_KEY,
D.PRODUCTCATEGORY_NAME,
F.COUNTRY_NAME,
SUM(SALES_AMT) AS SALES_AMT,
SUM(SALES_QTY) AS SALES_QTY
FROM dbo.FACT_SALES A
LEFT JOIN 
dbo.DIM_PRODUCT B
ON A.PRODUCT_KEY=B.PRODUCT_KEY
LEFT JOIN 
dbo.DIM_PRODUCTSUBCATEGORY C
ON B.PRODUCTSUBCATEGORY_KEY=C.PRODUCTSUBCATEGORY_KEY
LEFT JOIN 
dbo.DIM_PRODUCTCATEGORY D
ON C.PRODUCTCATEGORY_KEY=D.PRODUCTCATEGORY_KEY
LEFT JOIN
dbo.DIM_STORE E
ON A.STORE_KEY=E.STORE_KEY
LEFT JOIN 
dbo.DIM_REGION F
ON E.REGION_KEY=F.REGION_KEY
GROUP BY 
YEAR(TRX_DTE) ,
DATEADD(dd,1-DAY(TRX_DTE),TRX_DTE) ,
C.PRODUCTSUBCATEGORY_KEY,
C.PRODUCTSUBCATEGORY_NAME,
D.PRODUCTCATEGORY_KEY,
D.PRODUCTCATEGORY_NAME,
F.COUNTRY_NAME
View Code

  

                                                                   图 3

四、在报表主体部分,右击—>插入—>矩阵,如图4和图5

   

                       图4                                                                       图 5

 

五、拖放字段至矩阵报表,并在第一行地一列输入产品大类名称,如图6,7,8,9,10,11,12

                      图 6

    选中第二列—>插入列—>组内部-右侧

      

                                  图 7                                                                                                      图 8

然后在第二行第二列,聚合汇总,具体如下图:

           

                 图9

 

 

   

                                              图10

 

                                              图11

 

                                      图12

    选择 [Sum(SALES_AMT)]和[Sum(SALES_QTY)]的行,加入组外数据列,在新增的数据列加入表态说明,如下图13和图14

 

                                                         图13

                                     图14    

六、切换到阅览标签页,另外可使用格式化属性以调整矩阵的外观。如图15

 

                                                                                                图15

 七、矩阵组的使用

    在矩阵中添加子组  

    1.选中行组(PRODUCTCATEGORY_NAME),—>添加组—> 子组

      

                                  图16

       2.选择分组依据 [PRODUCTSUBCATEGORY_NAME]

       

                                      图17

       

                                             图18

     3.切换到阅览标签页,另外可使用格式化属性以调整矩阵的外观,可以选择一行,按F4,BackgroundColor(背景色):LigthBlue(青蓝色)。BorderColor:Black.背景色一般和企业的logo颜色一致。

                                                                                                      图19

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

      首先,在“产品种类“子组(PRODUCTSUBCATEGORY_NAME),选择”添加总计“—>”早于“,此时,会在数据行上方加入总计行,如图20

      

                                                             图20 

      

                                 图21

       接下来,将默认的“总计”替换为[PRODUCTCATEGORY_NAME](点击总计文本框,表达式,选择数据集的字段[PRODUCTCATEGORY_NAME]),

       接下来,请将第一列删除,同时将[PRODUCTSUBCATEGORY_NAME]的”Padding“—>”Left“ 属性改为"12pt",即可完成缩排效果。

  如图22和图23

       

                                           图22

        

                                                                                      图23  

  预览效果如图24

  

  图24  

矩阵需要大家多多练习,就可以熟练掌握了。

参考书籍《SQL Server 2008 R2  Reporting Services 报表服务》