【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 ...
随机推荐
- 如何在magento后台增加一个自定义订单状态
magento后台订单状态(order status)只有Pending.Processing.On Hold.Closed.Canceled.Pending Payment 等等,如何在magent ...
- 《MORE EFFECTIVE C++》条款27 要求或者禁止对象分配在堆上
1. 要求对象分配在堆上 临时对象一般是存在于栈中的,或者是静态对象存在于常量存储区的.那么当创建一个这样的对象的时候,一般是需要隐式或显式地调用构造函数,在销毁的时候调用析构函数的.可以从这方面入手 ...
- Yii 中的createUrl和redirectUrl
Yii 这两个url表示方法容易混淆,区别如下: $this->CreateUrl('控制器/方法',get参数); $this->CreateUrl('方法'); ...
- 解决:导入第三方jar包后,仍然出现java.lang.NoClassDefFoundError的错误
最近,在运行某个Android工程的时候,一直抛出java.lang.NoClassDefFoundError异常. 按照异常所给出的信息,应该是程序使用到的第三方jar包出了问题. 但是,这些第三方 ...
- Sqlserver 远程连接的 TCP/IP 和 Named Pipes的区别
TCP/IP: TCP/IP是 Internet 上广泛使用的通用协议.它与互连网络中硬件结构和操作系统各异的计算机进行通信.TCP/IP包括路由网络流量的标准,并能够提供高级安全功能.它是目前在商 ...
- vmware-workstation-11中centos-6.6安装
排版比较乱,参见 https://www.zybuluo.com/Jpz/note/144303 VMware Workstation 11中CentOS 6.6安装 Linux开发环境配置 目录 V ...
- Open经验库网址
http://www.open-open.com/lib/view/open1436094840774.html
- 【BZOJ1007】【HNOI2008】水平可见直线
依旧看黄学长代码,不过这回是看完后自己写的 原题: 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的.例 ...
- BufferedInputStream/BufferedOutputStream复制文件
public class Test{ public static void main(String[] args) throws IOException{ FileInputStream in = n ...
- javascript多重继承
function employee(name, job, born) { this.name = name; this.job = job; this.born = born;} function h ...