设为首页 收藏本站
查看: 730|回复: 0

[经验分享] ***S 2012 Report Items -- 表格类对象

[复制链接]

尚未签到

发表于 2018-6-16 09:43:02 | 显示全部楼层 |阅读模式
***S 2012 Report Items -- 表格类对象
  ***S中的报表内容主要是通过“数据表”、“矩阵”以及“列表”三种数据区域项目所建构而成的,但是在旧版***S中,这三种项目都有其适用功能以及使用限制,例如:
  n 数据表:数据列数量是固定的,但数据行却是可以动态增加且进行组合。
  n 矩阵:数据行与数据列都是可以动态增加的。
  n 列表:利用文本框以任意位置配置,适合用来呈现明细数据。
  基本上,这些数据区域项目(除了列表)只能处理对称类型的报表结构,太多的限制对于企业业务报表设计来说实在过于束缚。因此,造成很多报表格式难以在***S中实作,为了提升可用性,***S中利用全新的Tablix将三者的功能加以延伸,大幅的排除既有限制以及扩充既有数据区域的格式设置弹性。
1. Tablix
  什么是Tablix,简单地说,就是综合了传统的数据表(Table)与矩阵(Matrix)的优点合并产生的新型的数据区域项目,也就是:
  Tablix = Table + Matrix
  Tablix工具相较于传统数据区域项目有以下特性:
  n 可以同时具备固定数量与动态数量数据列与数据行:“数据表”的特色在于数据列数量是固定的,但是,数据行却是可以动态增加且进行组设定。在“矩阵”中数据行与数据列都是可以动态增加的。可是在Tablix中,这些限制都将不再存在,不管是数据行或数据列都可以选择固定、或是动态增加模式,甚至于很合两种形态并且自由设定数据组。
  n 在同一层级中支持平行数据行或数据列:这是Tablix新功能中最让微软自豪的一项,例如,在业绩报表中,设计者可以在数据行中加入一组“年度”的动态数量数据列,同时在旁边再加上一组平行的“产品”的动态数量数据列。这两组数据列虽然是使用独立的数据集,但是却可以共享同样的数据行。
  n 阶梯式数据行:传统的矩阵报表的最大缺点就是当数据列具备阶梯时,展开时会是多层结构。在Tablix中,可以将数据列的多层结构转为阶梯缩排结构(这是以前在数据表才有的功能),如此报表会看起来简洁许多。
  不过,Tablix只是一个概念,在***S的工具栏中是找不到名为“Tablix”的项目的,数据表、矩阵以及列表依然存在,只不过是利用属性设置的方式扩充的格式弹性,因此,不管你拉的是数据表、矩阵或是列表,在设计界面上的名称也都是Tablix。以下我们将从“数据表”数据区域项目的使用谈起。
2. 数据表与数据集绑定
  设计报表可以直接从工具箱中将数据表拖放至设计画面中。当鼠标单击设计画面中数据表的任一数据格时,在数据表的左侧与上方都会呈现灰色的区块,在此称为“数据行控点(Row Handle)与“数据列控点(Column Handle)”,而“数据列控点”与“数据行控点”的交汇处为“交角控点(Corner Handle)”。在“数据列控点”、“数据行控点”与“交角控点”按一下鼠标右键来执行数据行、数据列和数据表的大部分设置动作。
DSC0000.jpg

  “行处理框”灰色区域上会使用图示来标示每行数据行的用途。第一行无图示者为数据表的“表头(Header)”,在数据表中表头默认只出现一次,如果希望增加表头的行数,可以点选“行处理框”的表头处点选“Insert Row”的“Above”或是“Below”,即可增加行数。
DSC0001.jpg

  第二行有“≡”图示者为“详细数据”,至于***S 2008之后已经不在有数据表的“表尾(Footer)”项目,对于***S 2008来说,表尾就是一般的数据行,如果要开启数据表的表尾,可直接在详细数据下方加入组外的数据行即可。
DSC0002.jpg

  如何选择整个数据表?
  先选择数据表中的任一单元格,再单击数据表左上角的“交角控点”,即可选择整个数据表。
  但是,系统默认并不会显示“Report Data”窗口,此时,请各位在“View”中选择“Report Data”。将报表数据窗口中的“各品类每月销售分析”数据集展开,使用鼠标从字段列表中将数据列“TRX_YEAR”字段拖放至数据表对应的“详细数据”行的第一列中,拖拉动作完成后,详细数据单元格中会出现该数据的代表表达式“=Fields!TRX_YEAR.Value”。
DSC0003.jpg

  放入数据字段时,***S会依照数据集所命名的字段名称(TRX_YEAR)自动标示在数据表的表头,通常数据集所定义的字段名称是无法让报表的使用者直接识别的,所以,设计者应该手动将表头中的字段修改为有意义的名称。
  基本上,当第一个字段放到数据表时,该数据集即成为此数据表绑定的数据集,***S中的一个数据区域只能绑定单一数据集。设计者可通过“Properties”窗口的“DataSetName”属性中的下拉式菜单,查看火修改绑定的数据集。
DSC0004.jpg

  数据绑定
  ***S中,一个数据区域只能绑定一个数据集,但是一张报表内可以有多个数据集。如果你希望做到一个数据区域内呈现多个数据源,必须要利用***S 2008 R2新增的Lookup表达式。
  修改完成后,切换至“Preview”标签页,即可检查报表完成画面。
DSC0005.jpg

  通过以上示例,可以了解***S的报表设计只需要几步鼠标点选、拖放的动作,便完成了一份报表。不过,要完成一份正式的报表光是这样还是不够的,还需要在版面上作多一些视觉化的设计。
3. 数据表属性设定方式
  当在“主体(Body)”区域加入数据表时,在属性窗口中发现,除新增了“Tablix”的属性外,还多了许多的“文本框”属性,那是因为“数据表”是由许多“单元格(Cell)”组成,而实际上每个单元格都是一个“文本框(Textbox)”。
  先介绍这个Tablix的属性设置。整个数据表“Properties”的设置,我们可以通过以下几种方式来操作,第一种模式是在报表设计器中的“Properties”窗口,在下拉菜单内选择“Tablix”选项。
DSC0006.jpg

  除了以上的模式外,也可以右键数据表任一处,选择快捷菜单中的“Tablix Properties…”选项,即可在“Tablix Properties”对话框内设置相关属性。
DSC0007.jpg

DSC0008.jpg

  不过,“Tablix Properties”对话框仅提供比较简单的设置功能,包括:
  n 常规:主要是设置数据表名称、工具提示、数据集名称、分页符号以及行标题与列标题。
  n 可见性:利用Hidden以及ToggleItem属性设置数据表的可见性切换。
  n 筛选器:设置Filter属性。
  n 排序:设置SortExpression属性。
4. 数据表数据行、数据列与表头
DSC0009.jpg

DSC00010.jpg

  数据表中的“表头”与“表尾”是用来放置数据表共同的说明性信息,表头的部分通常都使用字段名来说明每个说句列的内容,“表头”默认只会在数据表的顶端出现一次。但如果数据表中的数据笔数过多需要延伸至多页时,为了方便使用者可以在每页查看字段信息,此时,也可以设置表头每页重复出现。
  要做到每页重复表头,必须将“Column Groups”切换为“Advanced Mode”,单击“Row Groups”处“Details”上方的“Static”数据列(也就是表头数据列),在属性窗口中将“RepeatOnNewPage”属性设为“True”,即可做到每页重复表头的效果。
   DSC00011.jpg
  此外,***S也有类似Excel中“冻结窗格”的固定表头的功能,必须要进入“Advanced Mode”,单击“Row Groups”处“Details”上方的“Static”列(也就是表头数据列),在属性窗口中将“FixedData”属性以及“KeepTogether”属性设为“True”即可。
DSC00012.jpg

  在***S 2008以后就不再出现独立的表尾区域,而是以详细数据下方的数据行取代。传统表尾是用来显示数据列中数值字段汇总后的结果。如果要产生表尾,除了单击详细信息区域,选择加入列组外下方数据列之外,还可以在设计区域下方的行组单击“Details”,选择“Add Total”、“After”,即可加入显示汇总信息的表尾区域。默认总计的汇总函数都是“求和(Sum)”。
DSC00013.jpg

5. 数据表单元格格式修改
  光是有数据表恐怕还不够,大多数的商务使用者希望报表本身是能够赏心悦目,因此,数据的排版与格式是非常重要的,这也是为什么大多数的分析人员都是Excel高手,而且经由巧手一调整就可以产生出各种专业的报表。
  ***S中也提供了丰富的属性设置。可用来调整报表内容的外观。接下来,我们就从几个常见的属性来说明如何调整报表的格式。
  步骤1:将表头的底色改为蓝色,字的颜色改为白色同时加大、加粗与居中。
  步骤2:将销售金额的数字格式加上货币符号以及千分位符号。
  步骤3:将销售数量的数字格式加上千分位符号。
  步骤4:数据表加上横向框线。
  首先,请将数据表的表头反白,将“BackgroundColor”设为“SteelBlue”、“Color”设为“White”、“Font”设为“Normal,10pt,Bold”、“FontFamily”设为“Microsoft YaHei”、“TextAlign”设为“Center”。表示底色设为蓝色,文字颜色为白色,字型设为粗体、10pt,雅黑及居中对齐。
DSC00014.jpg

  接下来,将销售年月详细资料以及表尾处反白,将“Format”属性内输入“d”,d标示简易日期。销售金额详细资料以及表尾处反白,将“Format”属性内输入“C0”,C标示货币,系统会根据设定值产生对应的货币符号,至于0则标示保留小数0位。至于销售数量只需要在“Format”属性内输入“N0”,标示呈现数值0位小数。
DSC00015.jpg

  在格式设置中,默认数据表都是灰色的边框,如果要改成横向边框,请先将“BorderStyle”属性的“Default”改为“None”。接下来,请将“BorderStyle”属性的“Top”与“Bottom”改为“Solid”。
DSC00016.jpg

  设置完成后切换至预览标签页,只要熟悉各项格式属性,再搭配下表达式,就可以让报表格式呈现更丰富的变化。
DSC00017.jpg

6. 排序
  一般在设计报表时,会希望报表中的数据能依一个或多个列中的数据来排序,帮助看报表的人能快速地检索数据,***S中有提供数种模式可以达到排序的效果:
  n 在建立数据集时,使用“Order by”关键字来指定行的排序。
  n 在数据表中指定排序方式。
  n 让使用者依照个人的喜好来设置报表的排序方式。
  当在定义数据集时,可使用SQL语法中的“Order by”、“Asc”及“Desc”关键字互相搭配指定数据返回至***S的顺序,其优点是将排序的工作交由数据库负责,报表服务器取得已经排序好的数据集,不需再做处理,可直接呈现结果。但是缺点在于如果要让多个数据区域共享同一个数据集,但是需求的排序方式不同时,就会造成设计上的困难。
  若在定义数据集时没有指定排序的方式,数据会依照查询后返回数据集的原始数据顺序显示,如果觉得这个顺序过于凌乱,设计者仍可以使用“Tablix Properties”对话窗口内的“Sorting”标签页来设置。
  首先,右击数据表任一处选择“Tablix Properties”,切换至“Sorting”标签页,单击“Add”按钮即可列出数据集排序的列,设计者可以制定多个排序列,以及排序顺序。如果单击排序依据右方的“fx”图示,可以再进一步撰写较复杂的表达式以符合设计者的排序需求。
DSC00018.jpg

  前面介绍的两种方式,虽然都可以达到排序的效果,但是依照笔者的实际经验,不同的使用者看同一份报表时,仍会希望依照自己的需求来显示数据的顺序,通常这对报表设计人员会是一项棘手的问题,在***S中提供了“交互式排序”的功能,让每个使用者可以依照各自喜好调整报表的排序方式,贴心地为报表设计人员减轻负担。
7. 筛选
  在数据集中虽然可以利用WHERE子句以进行数据筛选,但是,当筛选条件中包括参数时,每个使用者选取的参数不同,会造成***S必须重新从数据库中查询返回数据集,这反而会造成数据库查询的负担。此时,可以善用数据表的筛选功能,系统只需查询一个最完整的共享数据集,然后将此数据集存入缓存中,不同使用者使用差异的筛选功能,如此个别数据表虽然是绑定到相同的数据集,但只要筛选的条件不同,即可做到不同的内容呈现,这在企业级报表平台中是用来节省数据存取性能的重要技巧。
  首先,右击数据表于任一处选择“Tablix Properties”,切换至“Filters”标签页,单击“Add”按钮即可列出数据集筛选的字段,以及指定筛选的表达式。如果单击筛选栏位或是筛选值右方的“fx”图示,可再进一步撰写较复杂的表达式以符合设计者的筛选需求。
DSC00019.jpg

8. 组
  当数据表中数据列过多时,除了可以使用排序的方式来增加报表的可读性,另一种常用的技巧就是组化。组是将一组拥有相同特性的数据的集合,以刚才的报表来说,每笔数据都会有对应的销售年份以及产品种类,如果是以“产品大类”为基础加入数据表群组,数据表会将相同产品种类的数据集中在同一个组中,甚至组内还可以再使用其他字段再加入组,这种方式我们称为“嵌套组”。
  如果要设计组,单击要产生组的数据行,右击选择“Add Group”,“Parent Group”即可。此处的父组指的是在外层的组,由于目前单击的是“Details”数据行,因此不可能有更内层的组,所以,画面只会显示“Parent Group”选项。
DSC00020.jpg

  选择产生“Parent Group”后,在“Tablix Group”对话框中的“Group by”利用下拉菜单选择要产生组的列。此外,与数据表的概念相同,在每次新增组的时候,系统可以根据使用者的需求在组上下方产生新的数据行,分别为组头(Group Header)、组尾(Group Footer),在此,我们需要组头尾以放置小计数值。
DSC00021.jpg

  设置组完成之后,默认会在数据表最左侧产生一个新的数据列,并且填入“Group by”的字段名称,同时该数据列的表头为“TRX YEAR”。将新的数据列“TRX YEAR”名称改为“交易年份”,并将原有的“交易年度”列删除。
DSC00022.jpg

  默认组尾会是空白的数据行,设计者可以在组首尾中加入数据列汇总表达式来显示小计数值。此时,可将销售金额与销售数量在数据表表尾的表达式复制贴上至组页尾处,同时可在组页尾处加上“小计”的说明文字。
DSC00023.jpg

  设置完成后,切换至“预览”标签页。
DSC00024.jpg

  同时我们可以在交易年份的组内加入一个名为“产品大类”的子组,或是在详细信息外加入一个名为“产品大类”的父组,接着,我们将列只留下销售数量与销售金额。
DSC00025.jpg

DSC00026.jpg

  此时,预览结果如下,你可以发现与预期有些不同,数据仍是呈现明细,而非根据两个组进行汇总。
DSC00027.jpg

  这是因为组内还有详细信息所造成的,因此,可单击“Details”,并将它删除,在弹出的对话框中,选择“Delete Group”
DSC00028.jpg

DSC00029.jpg

  设置后预览,可以得到汇总结果。
DSC00030.jpg

9. 高级数据表Tablix格式设置
  传统的数据表只能将数据集作单次显示,但是,高级的Tablix则是可以将一个数据集利用不同的角度作重复的显示。举例来说,销售量报告除了依照产品类别查看之外,也可能要依照销售地区查看,传统做法就只能够使用两个数据表,但Tablix则是可以将它并排在同一个项目之中。以下我们将介绍如何使用Tablix设计不同角度的合并业务数据表。
  设计方式只需要在设计区域下方的“Column Group”面板中选择“产品大类”的组,右击选择“Add Group”、“”,在弹出画面中选择组依据为[COUNTRY_NAME],如此即可产生一组平行于“产品大类”组的新组。
DSC00031.jpg

DSC00032.jpg

  此时,可以在新产生的数据列中填入相关列,为了方便查看,将新产生的相邻组设定不同的底色。
DSC00033.jpg

  此时预览结果如下图所示。请仔细观察,我刻意没有把新的相邻组的数值设置为之前的相邻组的格式,这是因为要让各位理解,上下两个相邻组的格式是可以各自独立的。
DSC00034.jpg

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-524461-1-1.html 上篇帖子: ***S 2012 仪表 -- 刻度(Scale) 下篇帖子: 安装SQL Server 2012示例数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表