一、打开 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 报表开发】— 数据表的使用的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. 【Reporting Services 报表开发】— 怎么根据当前表单的guid作为参数查询相关数据?

    select AId from FilteredA as CRMAF_FilteredA 用这个 作为一个DataSet1 , 然后添加在报表里面添加一个参数 @AId,设置的默认的查询为前面Data ...

随机推荐

  1. PE文件格式

    以下内容摘录自<加密与解密>: 为了在PE文件中避免有确定的内存地址,出现了相对虚拟地址(RVA)的概念.RVA只是内存中的一个简单的相对于PE文件装入地址的偏移位置.它是一个“相对”地址 ...

  2. Codechef2015 May - Chef and Strings (后缀自动机)

    用后缀自动机统计出出现1~n次的串的数量f[i] 对于ans[k]=sigma(f[i]*C(i,k)) i>=k ; mo=; ..maxn] of dword; nt:..maxn,'a'. ...

  3. PHP 调用oracle存储过程

    $orderdate = strtotime($this->input->get('orderdate')); $today = strtotime(date('Y-m-d',time() ...

  4. usb serial for android

    /******************************************************************** * usb serial for android * 说明: ...

  5. shell命令:给当前目录里一个文件压缩一份不包含.svn文件的zip包

    filepath=$(cd ")"; pwd) packagePath="$filepath"/package zipPath="$filepath& ...

  6. thrift在windows的编译/安装--c++版

    前言: thrift是出于Facebook的rpc网络编程框架, 其对跨平台和多语言的支持优于google protobuf, 但thrift在java/c#语言上应用比较多, 资料也丰富, 在win ...

  7. ZPPR032-批量展BOM

    *-----------------------------------------------------------------------REPORT zppr032 NO STANDARD P ...

  8. ES6 — 字符串String

    ES6对字符串新增了一些函数和操作规范.下面我们来看ES6中对字符串新加的特性. 1.模版字符串 (即用反引号定义的字符串) 传统的字符串拼接通过我们使用'+'号与变量连接.例如: let name= ...

  9. vim 被墙

    我只能说,呵呵.还好这货可以进. http://vim.wendal.net/

  10. c 函数及指针学习 10

    标准库函数 1算数运算stdlib.h 2随机数stdlib.h 3字符串转化stdlib.h 4数学函数 math.h 5日期和时间 time.h 6信号 signal.h 7打印可变参数列表std ...