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

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

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

图 1

图 2

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

数据库选择为:ASIAMINER_SSRS

这里数据集的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

图 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 报表服务》

需要下载的数据库和SQL脚本:http://www.wsbookshow.com/bookshow/kjlts/jsj/kfzj/11395.html 的图书详情—>下载资源

【Reporting Services 报表开发】— 矩阵的使用的更多相关文章

  1. 【Reporting Services 报表开发】— 交互式报表

    我们知道,界面是人与系统间的对话方式,当使用者面对的是冷冰冰的界面,不但会造成使用者对于系统的热情减低,也会因为不便而产生诸多抱怨.尤其像报表时企业内几乎每日都会使用到的工具,因此,如何让使用者可以再 ...

  2. 【Reporting Services 报表开发】— 表达式

    一.常用的SSRS原始函数可以打开文本框的表达式中看到,如图1 图1 如下为SSRS中设计报表时常用的运算函数: 运算符/函数 说明 + 前后位数字则为加法,前后为字符串则为链接符号 - 数值减法 * ...

  3. 【Reporting Services 报表开发】— 页码编列

    一.打开 SQL Server Business Intelligence Development Studio,新建项目—>商业智能项目—> 报表服务器项目,命名为CH4 二.在报表文件 ...

  4. 【Reporting Services 报表开发】— 数据表的使用

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

  5. 【Reporting Services 报表开发】— 如何根据明细的行数实现分页(比如每隔5行分页)

    一.新建报表:对于初学者可以参考我前面的文章[Reporting Services 报表开发]— 总结 如图1: 图 1 二.选择 new_name文本框—>添加组—>选择行组中的父组.具 ...

  6. 【Reporting Services 报表开发】— 级联式参数设置

    级联式参数设置 再清楚的菜单,只要遇到选择项目一多的时候,难免会让人眼花缭乱,而找不到该选的选项.举例来说,像是零售业动辄万种商品品类,如果希望快速的选择到希望查看的产品品类时,就需要更有效率的搜索方 ...

  7. 【Reporting Services 报表开发】— 数据表存储格式修改

    文本框 Format属性:日期:输入d(表示简易日期).2007/5/1 0:00:00   输入d之后 变成 2007/5/1 金额:输入C0(表示货币),系统会根据设定值产生对应的货币符号,至于0 ...

  8. 【Reporting Services 报表开发】— 如何设置报表分页列标题每一页都显示

    一.打开已经开发好的报表ReportTest,选择列组下的高级模式—>选择行组的静态(会关联列标题订单编号),修改下面的属性: 1.Hidden:False 2.FixedData:True 3 ...

  9. 【Reporting Services 报表开发】— 总结

    一.环境搭建:安装SQL Server 2008 R2或SQL Server 2012过程略,这里我安装的是SQL Server 2012. 二.新建报表项目: 1.打开Visual Studio 2 ...

随机推荐

  1. 渐变背景 css3渐变效果及代码

    渐变背景及代码  http://uigradients.com/#Behongo

  2. C#_控件——DropDownList

    1.html <asp:CheckBox ID="CheckBox11" runat="server" onclick="changecheck ...

  3. Selenium - IWebDriver 控制scroll bar到底部

    有时候我们需要控制页面滚动条上的滚动条,但滚动条并非页面上的元素,这个时候就需要借助js是来进行操作.一般用到操作滚动条的会两个场景: 注册时的法律条文需要阅读,判断用户是否阅读的标准是:滚动条是否拉 ...

  4. DNS劫持和DNS污染解决办法

    编号:1013时间:2016年5月26日09:35:27功能:DNS劫持和DNS污染解决办法URL : http://www.itechzero.com/dns-hijacking-dns-pollu ...

  5. js校验表单后提交表单的三种方法总结(转)

    第一种: 代码如下: <script type="text/javascript"> function check(form) { if(form.userId.val ...

  6. 设计模式:Strategy 策略模式 -- 行为型

    设计模式 策略模式Strategy(对象行为型) 这是几年前写的文字(转载做的笔记更准确些),发觉还是废话多了点. 其实,核心就是5.结构中的UML图 5.1 和 5.2(新增).现在看这张图就觉得一 ...

  7. sudo: 无法解析主机:<主机名>

    hostname配置出错 解决方法:进入目录 /etc/hosts编辑,命令 sudo gedit /etc/hosts 在其中加入下面行:127.0.0.1 主机名

  8. 软件工程课程作业(三)--四则运算3(C++)

    伙伴链接:http://www.cnblogs.com/haoying1994/ 一.设计思路 在此前程序拥有的功能:加减有无负数,除法有无余数以及算式可定制的功能的基础上,此次程序又添加了算式结果的 ...

  9. Jquery图片上传预览效果

    uploadPreview.js jQuery.fn.extend({ uploadPreview: function (opts) { var _self = this, _this = $(thi ...

  10. [USACO11JAN]利润Profits

    题目描述 The cows have opened a new business, and Farmer John wants to see how well they are doing. The ...