【Reporting Services 报表开发】— 矩阵的使用
矩阵,相较于数据表示一维的数据,只能指定固定的数据列,来呈现动态的明细数据行,所以,它可以说是种二维的数据展现形式,让我们能够很容易地从数据行和数据集的交替中查看对应的汇总信息。像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 报表开发】— 矩阵的使用的更多相关文章
- 【Reporting Services 报表开发】— 交互式报表
我们知道,界面是人与系统间的对话方式,当使用者面对的是冷冰冰的界面,不但会造成使用者对于系统的热情减低,也会因为不便而产生诸多抱怨.尤其像报表时企业内几乎每日都会使用到的工具,因此,如何让使用者可以再 ...
- 【Reporting Services 报表开发】— 表达式
一.常用的SSRS原始函数可以打开文本框的表达式中看到,如图1 图1 如下为SSRS中设计报表时常用的运算函数: 运算符/函数 说明 + 前后位数字则为加法,前后为字符串则为链接符号 - 数值减法 * ...
- 【Reporting Services 报表开发】— 页码编列
一.打开 SQL Server Business Intelligence Development Studio,新建项目—>商业智能项目—> 报表服务器项目,命名为CH4 二.在报表文件 ...
- 【Reporting Services 报表开发】— 数据表的使用
一.打开 SQL Server Business Intelligence Development Studio,新建项目—>商业智能项目—> 报表服务器项目,命名为CH3 二.在报表文件 ...
- 【Reporting Services 报表开发】— 如何根据明细的行数实现分页(比如每隔5行分页)
一.新建报表:对于初学者可以参考我前面的文章[Reporting Services 报表开发]— 总结 如图1: 图 1 二.选择 new_name文本框—>添加组—>选择行组中的父组.具 ...
- 【Reporting Services 报表开发】— 级联式参数设置
级联式参数设置 再清楚的菜单,只要遇到选择项目一多的时候,难免会让人眼花缭乱,而找不到该选的选项.举例来说,像是零售业动辄万种商品品类,如果希望快速的选择到希望查看的产品品类时,就需要更有效率的搜索方 ...
- 【Reporting Services 报表开发】— 数据表存储格式修改
文本框 Format属性:日期:输入d(表示简易日期).2007/5/1 0:00:00 输入d之后 变成 2007/5/1 金额:输入C0(表示货币),系统会根据设定值产生对应的货币符号,至于0 ...
- 【Reporting Services 报表开发】— 如何设置报表分页列标题每一页都显示
一.打开已经开发好的报表ReportTest,选择列组下的高级模式—>选择行组的静态(会关联列标题订单编号),修改下面的属性: 1.Hidden:False 2.FixedData:True 3 ...
- 【Reporting Services 报表开发】— 总结
一.环境搭建:安装SQL Server 2008 R2或SQL Server 2012过程略,这里我安装的是SQL Server 2012. 二.新建报表项目: 1.打开Visual Studio 2 ...
随机推荐
- WPF Step By Step 系列 - 开篇 ·
WPF Step By Step 系列 - 开篇 公司最近要去我去整理出一个完整的WPF培训的教程,我刚好将自己学习WPF的过程和经验总结整理成笔记的方式来讲述,这里就不按照书上面的东西来说了,书本上 ...
- 【转】Polymer API开发指南 (二)(翻译)
原文转自:http://segmentfault.com/blog/windwhinny/1190000000596258 公开 property 当你公开一个 Polymer 元素的 propert ...
- java学习第十天
第十二次课 目标 一维数组(创建访问) 一.概念与特点 1.概念 相同数据类型的有序集合[] 数组名: 容器的名字 元素: 下标变量,数组名[下标] 长度: length 下标: 位置.索引 ...
- LeetCode OJ String to Integer (atoi) 字符串转数字
#include <iostream> #include <assert.h> using namespace std; int ato(const char *str) { ...
- python解析smart结构数据
python编程解析如下smart结构数据,得到一行smart信息 run: smartctl -a /dev/sda out: smartctl 6.3 2014-07-26 r3976 [x86_ ...
- Linux下使用fdisk发现磁盘空间和使用mount挂载文件系统
若在安装Linux系统时没有想好怎么使用服务器,开始时只分了一部分给根目录.后面需要再使用时,可以通过几下一步进行分区和挂载文件系统. 看磁柱数使用情况 fdisk -l Disk /dev/sda: ...
- [转载] TCP与UDP对比
TCP和UDP区别 TCP UDP 是否连接 面向连接 面向非连接 传输可靠性 可靠的 不可靠的 应用场合 传输大量的数据 少量数据 速度 慢 快 OSI 和 TCP/IP 模型在传输 ...
- div+css 遮罩层
CSS样式部分: ---------------------------------- <style type="text/css">#loading-mask{ ...
- 【转】SQL Server与Oracle的区别
转自:http://soft.chinabyte.com/database/255/12258255.shtml SQL Server与Oracle的区别 2012-02-10 00:00 中国IT实 ...
- C#各类型大小