【译】Tablix指南----通向报表服务的阶梯系列(四)
“Ah ha,发现你了!”你的经理突然从桌子后面的假花旁冒出来,发出胜利的叫声。你沮丧地转过头看着经理。
“我已经创建了一个基本报表,并抓取了一些数据,我正打算-”你在他打断你之前快速的解释着。
“赶紧做完就好,大BOSS需要这个报表,越快越好”留下这些话后,你的经理扬长而去。
你心情沉重的坐下,打开SQLServerCentral.com,又到了读本系列文章的时候了。本篇文章阐述如何分组信息,调整动态列和行分组以及在Reporting Service中使用Tablix。
Table + Matrix + List = Tablix
Tablix是SSRS展示数据的工具。SQL Server Reporting Services 2008之后才有的报表项。由三个之前具有相似性的报表项组成:表、矩阵、列表。Tablix的视图如图4-1所示。
图4-1.Tablix视图
你并不能在Business Intelligence Development Studio (BIDS)的工具箱中找到Tablix工具。取而代之的是,你可以在图二分别看到表、矩阵和列表项,无论你将这三个项中的哪个项拖入报表,报表服务其实使用的都是Tablix。
图4-2.工具箱中展现Tablix模板
注意:如果你在BIDS中看不到工具箱,点击视图->工具箱选项或者按快捷键Ctrl + Alt + X.在工具箱中,所有的报表项都放在“报表项”头下。
下面我们来看第一个tablix模版:表
表
表是一个可以展示分组和聚合后数据的简单对象。如果数据包含的列是固定的,则可以使用表项。让我们从将”表”拽到报表上开始,在上一章中我们已经设置了数据集,这里直接为表使用这个数据集。每一个表只能从一个数据集中抓取数据。你可以从属性窗格中->DataSetName属性的下拉列表中选择数据集。属性窗格如图4-3。
图4-3.属性窗格和DataSetName属性
现在我们可以使用数据集中的字段来涉及表了,我们可以通过如下几种方式来在表中插入字段:
- 从报表数据窗格中拽入字段
- 从每一个格子中右上角的下拉列表中选择字段,如图4-4所示
- 在每个格子的属性窗格里进行选择
图4-4.表字段的选择
使用那种方式设置字段并不重要,一个简单表布局如图4-5所示。
图4-5.简单的表布局
分组
Tablix可以通过每一个“详细信息”分组来显示表。“详细信息”组为我们提供了一个了解分组原理的基本概念。每一次报表服务看到一个唯一行,它都会创建一个详细信息组。与这个原理相同,每一个所创建的分组都对唯一值再次创建一个详细信息组,下面我们来通过实例阐述这个概念。
在分组窗格中。在SSRS2008之前的版本中,你可以在表和矩阵的属性窗格中看到这个窗格,而在之后的版本中,你直接在BIDS的底部就能看到这个窗格,如图4-6所示。
图4-6.行和列的分组窗口
因为我们在表模版上工作,让我们来创建一个行组。点击行组窗格下的详细信息右边的下拉箭头,你会看到多个选项,包括”添加组”。选择添加组->父组选项,然后选择分组的条件列。如果需要添加组头和组尾,选择对应的Checkbox.完成的截图如图4-7所示。
图4-7.完成的Tablix组窗口
当你点击完成后,你可以在表设计界面中看到如图4-8所示。
图4-8.分组后的表设计
你可以在组头或组尾加入聚合函数或敲入一个标题来描述这一列。下面通过一个表达式来创建一个累加聚合。右键表格右下角处于行和列最后的那个单元格,右键点击文本单元格属性,在值那一栏填入:=SUM(Fields!TotalDue.Value),如图4-9所示。
图4-9 文本框属性
在开始运行报表之前,让我们来看一下Tablix的矩阵模版。在讨论矩阵之前我们首先讨论分组是因为这是理解表和矩阵之前区别的关键点。接下来我们来看矩阵。
矩阵(Matrix)
和表类似,矩阵也有对行或列进行聚合分组的功能。分组后的结果在x轴和轴上进行增长。创建列组和行组的方法很类似,唯一的区别是对属性的设置一个在行组窗格,一个是在列组窗格。下面例子是使用矩阵的报表按照不同月和销售地区对销售报表进行汇总的例子。如图4-10所示。
图4-10. 矩阵的布局
列表(List)
列表在讨论tablix时经常会被遗忘因为它实在是太简单了。数据集中的每一行都会在列表中生成一行和一列。如果你需要在报表中创建一个不受限于当前格式元素,你可以使用列表。你可以在列表中键入任何文本框来满足最终用户所希望的布局。
格式(Formatting)
报表的最终用户通常都希望数据以既定的格式显示。因为格式所应用的最小单元是文本框。所以你可以通过对表格,矩阵和列表来设置格式从而应用到tablix。在对我们已经创建好的基于表的报表中,我们对列排序规则和字体属性做一些改变。
列排序
几乎每一张报表都需要应用列排序从而将数据以既定的排序展示。通过点击tablix的任何一出,在出现灰色框中点击右键,选择Tablix属性,如图4-11所示。
图4-11.选择Tablix属性窗口
在属性窗口中,在左边的选项中选择排序。选择希望按照规则排序的列并选择排序顺序为A-Z,也就是升序。完成的窗口如图4-12所示。记住分组本身也带有排序,如果你运行报表后发现排序有问题,检查以确保其他类型的排序不会覆盖掉当前的排序。
图4-12.完成后的排序窗格
字体属性
下一步,让我们来看字体属性。这个设置可以让字体更加好看。选择所有列的头那行,在属性窗格中,选择字体属性->FontWeight属性->粗体选项,如图4-13所示。
图4-13.在属性窗格中的字体属性选择
在所有的这些准备,分组和格式设置完成后,我们迎来了完成的报表。点击预览标签,可以看到如图4-14所示。
图4-14.最终的报表视图
接下来:饭后甜点
现在,我们已经完成了报表服务中报表的一些核心概念的学习。我们在表和矩阵中展示数据,并对其进行分组,排序和设置格式。这可以让我们的报表满足大多数用户的需求。因为我们总是想给用户最棒的产品,接下来我们学习如何在报表中添加图表和地图使我们给大BOSS的报表看上去充满活力。我将在本系列文章的下一篇以图表展示未知中进行阐述。
【译】Tablix指南----通向报表服务的阶梯系列(四)相关推荐
- 【译】用图表展示未知----通向报表服务的阶梯系列(五)
伴随着你的经理湿润的呼吸呼到你的脖子上,你很不自然的转过椅子,告诉他你现在所完成的成果. "非常好"经理说道,你不禁开始想象他站在你身后摸着胡子的样子."现在还需要一个饼 ...
- 在IIS中为SQL Server 2008配置报表服务
不知道是不是SQL Server 2008的Bug,我在安装了SQL2008后(选择了安装报表服务的),但是在IIS中根本没有报表服务的虚拟目录.只是这么一个问题,其他BI设计器.报表服务等都还算正常 ...
- 在 MOSS2007 集成 SQL Server 2008 报表服务
一.准备环境 1.下载报表服务外接程序 用于 Microsoft SharePoint 技术的 Microsoft SQL Server 2008 SP2 Reporting Services 外接程 ...
- SharePoint 2010 与 SQL Server 2012 报表服务集成
一.安装报表服务外接程序 SharePoint产品准备工具可以安装 Reporting Services 外接程序的 SQL Server 2008 R2 版本.SQL Server 2012 包括 ...
- SQLServer 2012 报表服务部署配置(1)
由于最近客户项目中,一直在做SQL Server 方面配置.就给大家概况简述一下 报表服务安装及遇到问题.安装和运行 SQL Server 2012 的微软原厂都有最低硬件和软件要求,对于我们大多数新 ...
- IIS 7上安装SQL SERVER 2005报表服务可能导致不能正常连接
前段时间一直在研究SCOM 2007的报表功能,在POC里测试时候遇到一些问题,本打算装最新的产品WINDOWS SERVER 2008+SQL SERVER 2008+SCOM 2007.只是发现S ...
- 数据分析:构建可视化报表服务
上一步>>数据处理:数据建模与加工 实验背景介绍 本手册为北京云栖 Workshop<云数据·大计算:快速搭建互联网在线运营分析平台>的<数据分析:构建可视化报表服务&g ...
- SQLServer报表服务研究文档
SQLServer报表服务研究文档. Ø 研究目的 研究CRM4.0中的报表与sqlserver2005中的报表的集成,如何将CRM中已经制作好的报表导出后在SQLSERVER2005中进行修改后再导 ...
- 微软SQL 报表服务的研究
微软SQL 报表服务的研究 上次发布的关于国内报表设计器的分析,很多看客说遗漏了微软的报表服务,本人经过一段时间的补充学习,将本人得出的浅淡的研究说一下,本人是初学者,其中观点可能错误,望大家不吝赐教 ...
最新文章
- 深入浅出Rust Future - Part 1
- android自定义线程池工具类,妈妈再也不用担心你不会使用线程池了(ThreadUtils)...
- linux系统怎么清理磁盘空间,LINUX系统怎么使用命令清理磁盘空间?
- Android踩坑日记:点击变暗效果的ImageView实现原理
- opencv中vc14和vc15的区别?
- Linux虚拟机或阿里云部署本地Javaweb项目
- java 初始化log4j_java – log4j:WARN请正确初始化log4j系统
- selenium操作cookies实现免密登录,自动发微博
- spark BlockManager如何实现shuffle
- python小工具自动审单录凭证_跟着老板工作了二十年,最近来了个新员工然后我被开除了...
- python手机自动化框架_python自动化框架(一)
- 分拆素数和【筛选法】
- [图解]管理九段的新排列
- PLSQL_统计信息系列07_数据字典统计信息的导出和导入
- 一个房间里有4个小孩,2个戴黑帽,2个戴白帽
- 第九十八节,JavaScript语法、关键保留字及变量
- 哈理工OJ 1924 分数表达式(暴力枚举)
- grub2 中的boot命令
- JAVA 实现TCP请求转发
- 计算机网络安全知识讲座新闻稿,我院开展网络安全与信息化建设讲座
热门文章
- 企业级业务系统开发实战-序言
- 开心网分析,师从“中国缘”
- 全国计算机等级考试题库二级C操作题100套(第100套)
- 在centos8 stream启用 Extra Packages
- 软件:9款超级实用的办公软件,值得收藏!
- SQL语句大全,所有的SQL都在这里 !极度建议收藏...
- 如何更优雅的写出你的SQL语句
- 线性代数及其应用_线性代数入门——行列式的简单应用选讲
- python高斯求和_二、算法分析
- python序列化和反序列化_Python 中 json 数据序列化和反序列化