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

时间:2023-12-31 15:09:38

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

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

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

图 1

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

图 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

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

图3

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

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

图4

预览效果如图5

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

图5

五、前面的已经在之前的博文有说明过,表最重要的是组,一般就是行组。当数据表中数据列过多时,常用的技巧就是组化。组是将一组拥有相同特性数据的集合。

1.如果要设计组,请单击选中要产生组的数据行,如图6,右击选中“父组”即可,此处的父组指的是在外层的组。

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

图6

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

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

图7

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

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

图8

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

图9

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

图10

4.预览如图11和图12

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

图11

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

图12

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

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

图13

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

图14

预览如图15

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

图15

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

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

图16                                                                                             图17

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

图18

最后的格式如图19:

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

图19

预览结果如图20

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

图20

六、高级数据表Tablix格式设置

传统的数据表只能讲数据集单次显示,但是,高级的Tablix则是可以将一个数据集利用不同的角度作重复的显示,具体来说,销售量报告除了依照产品类别查看之外,也可能要依照销售地区查看,传统的做法就只能够实用两个数据表,但Tablix则是可以将它并排在同一个项目之中。以下我们将介绍如何实用Tablix设计不同角度的合并业务报表。

设计方式组只需要在 设计区域下方的”行组“ 面板中选择”产品大类(PRODUCTCATEGORY_NAME)“的组,右击选择”添加组“—>“后面相邻”,在弹出画面中选择组已经为[COUNTRY_NAME],如此即可产生一组平行与”产品大类“组的新组。如图21

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

图21                                                                                                  图22

设置后,如图23

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

图23

预览如图24,请仔细观察,我刻意没有把新的相邻组的数值设置与之前相同的字符串格式,这是因为要让各位理解,上下两个相邻组的格式是可以各自独立的。

善于Tablix的属性,设计者可以*地在数据行和数据列处设定静态(数量固定)以及动态(数量随列变动)的组,同时可以设置并排式的组,以强化报表的可读性。

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

图24

数据表的使用 ,就说明到这里,具体还需要在实践中多使用,就会熟练掌握。

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

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