【Reporting Services 报表开发】— 数据表的使用
一、打开 SQL Server Business Intelligence Development Studio,新建项目—>商业智能项目—> 报表服务器项目,命名为CH3
二、在报表文件夹下面,添加—>新建项。命名为TableTest,如图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

图3
把数据集中的字段拖到表中,如图4

图4
预览效果如图5

图5
五、前面的已经在之前的博文有说明过,表最重要的是组,一般就是行组。当数据表中数据列过多时,常用的技巧就是组化。组是将一组拥有相同特性数据的集合。
1.如果要设计组,请单击选中要产生组的数据行,如图6,右击选中“父组”即可,此处的父组指的是在外层的组。

图6
2.选择分组依据,此外,与数据表的概念相同,在每次新增组的时候,系统可以根据使用者的需求在组上下方产生新的数据行,分别为组头,组尾。

图7
3.设置王城之后,默认会在数据表最左侧产产生一个新的数据列,并且填入“组数据”的字段名称,同时该数据列的表头为“[TRX_YEAR]”。请先将新的数据列“[TRX_YEAR]”名称改为交易年度,并且删除原有的“交易年度”,也就是这里的第二列。如图8,如9

图8

图9

图10
4.预览如图11和图12

图11

图12
5.同时我们可以再交易年度的组内加入一个名为“产品大类”的子组,我们只留下销售量和销售额,此时,预览结果和预期有些不同,数据仍是呈现明细,而非根据两个组进行汇总。如图13和图14

图13

图14
预览如图15

图15
这是因为组内还有详细信息所造成的,因此,单击“详细信息”,并将它删除,在弹出的对话框中,选择“仅”删除组“。同时检查销售金额以及销售量的是否加入Sum的汇总函数。如图16和图17

图16 图17

图18
最后的格式如图19:

图19
预览结果如图20

图20
六、高级数据表Tablix格式设置
传统的数据表只能讲数据集单次显示,但是,高级的Tablix则是可以将一个数据集利用不同的角度作重复的显示,具体来说,销售量报告除了依照产品类别查看之外,也可能要依照销售地区查看,传统的做法就只能够实用两个数据表,但Tablix则是可以将它并排在同一个项目之中。以下我们将介绍如何实用Tablix设计不同角度的合并业务报表。
设计方式组只需要在 设计区域下方的”行组“ 面板中选择”产品大类(PRODUCTCATEGORY_NAME)“的组,右击选择”添加组“—>“后面相邻”,在弹出画面中选择组已经为[COUNTRY_NAME],如此即可产生一组平行与”产品大类“组的新组。如图21

图21 图22
设置后,如图23

图23
预览如图24,请仔细观察,我刻意没有把新的相邻组的数值设置与之前相同的字符串格式,这是因为要让各位理解,上下两个相邻组的格式是可以各自独立的。
善于Tablix的属性,设计者可以自由地在数据行和数据列处设定静态(数量固定)以及动态(数量随列变动)的组,同时可以设置并排式的组,以强化报表的可读性。

图24
数据表的使用 ,就说明到这里,具体还需要在实践中多使用,就会熟练掌握。
参考书籍《SQL Server 2008 R2 Reporting Services 报表服务》
需要下载的数据库和SQL脚本:http://www.wsbookshow.com/bookshow/kjlts/jsj/kfzj/11395.html 的图书详情—>下载资源
【Reporting Services 报表开发】— 数据表的使用的更多相关文章
- 【Reporting Services 报表开发】— 交互式报表
我们知道,界面是人与系统间的对话方式,当使用者面对的是冷冰冰的界面,不但会造成使用者对于系统的热情减低,也会因为不便而产生诸多抱怨.尤其像报表时企业内几乎每日都会使用到的工具,因此,如何让使用者可以再 ...
- 【Reporting Services 报表开发】— 页码编列
一.打开 SQL Server Business Intelligence Development Studio,新建项目—>商业智能项目—> 报表服务器项目,命名为CH4 二.在报表文件 ...
- 【Reporting Services 报表开发】— 表达式
一.常用的SSRS原始函数可以打开文本框的表达式中看到,如图1 图1 如下为SSRS中设计报表时常用的运算函数: 运算符/函数 说明 + 前后位数字则为加法,前后为字符串则为链接符号 - 数值减法 * ...
- 【Reporting Services 报表开发】— 矩阵的使用
矩阵,相较于数据表示一维的数据,只能指定固定的数据列,来呈现动态的明细数据行,所以,它可以说是种二维的数据展现形式,让我们能够很容易地从数据行和数据集的交替中查看对应的汇总信息.像SQL Server ...
- 【Reporting Services 报表开发】— 如何根据明细的行数实现分页(比如每隔5行分页)
一.新建报表:对于初学者可以参考我前面的文章[Reporting Services 报表开发]— 总结 如图1: 图 1 二.选择 new_name文本框—>添加组—>选择行组中的父组.具 ...
- 【Reporting Services 报表开发】— 数据表存储格式修改
文本框 Format属性:日期:输入d(表示简易日期).2007/5/1 0:00:00 输入d之后 变成 2007/5/1 金额:输入C0(表示货币),系统会根据设定值产生对应的货币符号,至于0 ...
- 【Reporting Services 报表开发】— 级联式参数设置
级联式参数设置 再清楚的菜单,只要遇到选择项目一多的时候,难免会让人眼花缭乱,而找不到该选的选项.举例来说,像是零售业动辄万种商品品类,如果希望快速的选择到希望查看的产品品类时,就需要更有效率的搜索方 ...
- 【Reporting Services 报表开发】— 如何设置报表分页列标题每一页都显示
一.打开已经开发好的报表ReportTest,选择列组下的高级模式—>选择行组的静态(会关联列标题订单编号),修改下面的属性: 1.Hidden:False 2.FixedData:True 3 ...
- 【Reporting Services 报表开发】— 怎么根据当前表单的guid作为参数查询相关数据?
select AId from FilteredA as CRMAF_FilteredA 用这个 作为一个DataSet1 , 然后添加在报表里面添加一个参数 @AId,设置的默认的查询为前面Data ...
随机推荐
- Bootstrap组件On和Off语法
$(document).on('click.bs.carousel.data-api','td',function(e){}) $(document).off('.carousel.data-api' ...
- 第二个sprint第一天
一.例会人员:李泳江,邵家文,周伟雄,谢洪跃 日期:6月1号 例会内容: 1.用户调研,修复bug,要对初期的版本的bug进行解决,以便能够在6月3号演示. 2.整个第二个sprint 我们队伍要 ...
- ios开发环境 分支语句 、 循环结构(for) 、 循环结构
1 完成命令解析程序 1.1 问题 有命令解析程序,该程序提供三个功能选项供用户选择,用户选择某功能后,程序在界面上输出用户所选择的功能名称.程序的交互效果如图-1所示: 图-1 由上图可以看出,程序 ...
- Mercurial使用简单介绍【转】
Mercurial可以使异地开发进行统一的版本管理,比如一个项目有一部分人在银行内部开发无法用外网,另一部分人在公司开发,这两部分人需要一个统一的版本管理工具,mercurial这时候可以发挥作用 m ...
- setTimeout方法
//不建议传递字符串 setTimeout(alert("hello"),1000); //推荐调用方式 setTimeout(function(){alert("hel ...
- 关于时间的util类,以后方便查阅
public static int lastDayOfMonth(int year, int month) { if (month == 2) { if (isLeapYear ...
- 2015GitWebRTC编译实录8
2015.07.20 common_video 编译通过,其对libyuv有引用[1309/1600 ] CXX obj /webrtc/common_video/libyuv/common_vide ...
- css link和@import区别
1.link语法结构 <link href="CSSurl路径" rel="stylesheet" type="text/css" / ...
- 《C标准库》——之<stddef.h>
<stddef.h>,顾名思义,就是标准定义.C语言里这个标准库里定义了一些类型,和宏定义. <stddef.h>的内容: 类型: ptrdiff_t : 是两个指针相减的结果 ...
- UVa 1592 数据库(c++pair)
Input Input contains several datasets. The first line of each dataset contains two integer numbersn ...