中国式复杂报表开发探索(上)

正在加载中...

试读已结束

继续阅读请 1 金币购买后下载

立即下载

资料简介:

中国式复杂报表开发探索(上)


作者:秦昕旭

前言



本文集合了作者的多年来的中国式复杂报表制作与研究经验,详细描述了复杂中国式交叉报表、中国式列表、纵向合并交叉表、横向合并交叉表、用SQL编写列表、用SQL编写交叉表等技巧过程的实现方法及详细步骤。以多张报表为例,图文结合,为您分步骤详细诠释如何实现“中国式报表”。使得读者可以根据本文全面学习“中国式报表”的制作方法,并快速上手进行实际制作。学习本文,能够极大缩短您的“中国式报表”的制作时间,让大家全面的认识中国式报表。相信本文对大家会有所帮助——作者,秦昕旭。



正文



1.创建复杂中国式交叉表



图片1.png



如图所示,这是复杂的中国式的交叉表,在这张表中用到了多个层次的查询项(如数量、收入等),也用到了多个查询成员(如2005、2006),制作这种报表建议使用framework制作的RLOAP维度模型或者Transformer制作的MOLAP维度模型,两者的区别在于数据量的上的区别,通常在1000万条记录以下的用ROLAP即用FM来建模,超过1000万条以上用MOLAP,在1000万条以下,两者区速度区别不大;如果使用FM建立的关系模型完成复杂式报表,就会用到很多过滤、连接处理数据,甚至有些情况是无法实现的,并且运行效率会很低。所以在本例子里使用FM创建的ROLAP来实现各种复杂报表。



首先先介绍一下,如何选取数据包中的数据,在cognos使用OLAP模型包创建报表时,设计页面的左边可以选择“可插入对象”。



bbb0629581fe4e367af4801f.jpg


标题下面有一系列的按键,用于选取成员或者查询项的方法:



4c93c331eaf5af895fdf0e0a.jpg


查看成员数:下方数据显示的是每个查询主题中的,实际的数据成员,用于直接选取单个成员;



9e4d84eddbea396d79f05503.jpg


查看元数据树:显示的是查询主题,查询项的数据树,用于选取一类数据;



573dd91e8643c73d4034170d.jpg


插入成员选择,单个成员:就是选哪一个插入哪一个成员;子项:是插入选中成员的所有子项;带子项的成员:插入成员及它所有的子项;



8f19db0f767f90cfaa645739.jpg


上图显示的是成员树的层次结构,选择数据时可以选择维度、度量,也能选取单个成员,或者修改选取方式,选取成员的子项、选取成员和它的子项;一般做表时用于选取单个成员时使用此树;



01b14afaae1e2aa09f5146d7.jpg


上图显示的是元数据树的层次结构,选择数据时可以选择维度、度量的查询项、维度的层或者是实际的成员,用于选择一类的数据。



2.jpg


首先打开 report studio,选择 GO 数据仓库 (分析),新建一张交叉表;



4.jpg


接着就可以向交叉表的行和列添加报表需要的数据项。从左边可插入对象窗格中选择 销售名字空间中员工(按地区)维度下的层级 分部区域, 国家/地区 并嵌套拖入行中(这里拖入的是查询项),同时将报表用到的维度层级及指标拖入交叉表的列位置(这里拖入的有数据成员、指标)。



6.jpg


设置交叉表的默认指标为收入;



8.jpg


12.jpg




12.jpg



嵌套一个交叉表空间到 2005 数据项的上方,并将 2006, 数量, 收入向左嵌套,使交叉表空间位于这四个数据项的上方,再分别拖入露营装备和一个交叉表空间到 露营装备子数据项的上方。




将计划收入,收入嵌套拖入 2005,2006 数据项下。



2.jpg


再将露营装备拖入零售方式(百货商店) 的上方,并将 (仓储式商店, 眼睛商店, 直销) 向左嵌套,使露营装备都位于他们的上方。同样的方法拖入一个交叉表空间,使其位于登山装备的下方,再将电话, Web, 传真, 邮寄, 特殊拖入该交叉表空间的下方,并分别拖入数量, 收入使其位于电话, Web, 传真的下方。




按照报表需求编辑交叉表空间的文字,具体做法是:右键单击交叉表空间,选择编辑文本,键入相应的表头文字即可。然后再分别在相应的位置拖入一个交叉表空间,目的是为报表中的空白列准备。



1s.png


根据报表需求在左边属性窗格中设置行, 列的背景色为白色,并将行名,列名设置成用户希望的字体并调整好相应的位置,如本例中 Bold 8pt Tahoma,居中,再设置各单元格的边框,列的宽度以及指标的数据格式。



11111.jpg


设置交叉表角。由于报表需求中交叉表角有两行文字,因此需要重新编辑交叉表角。具体做法是:单击工具栏中的锁按钮:

33333.png

使其变成解锁状态。


从左边可插入对象窗格中拖入两行一列的表到交叉表角,再插入文本到表单元格中编辑交叉表角的文字,并设置相应格式,颜色。



test.jpg


最后添加表头,修改表的样式,颜色,边框等参数。




点击工具栏中的运行按钮,运行报表,最终就得到运行的报表了。


本节通过实例阐述了在交叉表中构造复杂表头的详细步骤。在实际的报表开发中,结合不同的报表需求,从上往下逐步进行分析,灵活运用交叉表空间进行单元格嵌套,从而实现较复杂的数据展示,最终完成用户期望的报表样式。



2.创建复杂中国式列表





2.jpg


打开 report studio,选择 GO数据仓库(分析),新建一张列表;




从左边可插入对象窗格中选择销售名字空间中中报表用到的数据项拖入列表中;






从菜单栏依次选择 结构, 选择 页眉和页脚, 选择 列表页眉和页脚, 添加 整体页眉,列表自动插入一行页眉,也就是报表上新增加的整体行。




2.JPG



选中整体行,从菜单栏依次选择结构,选择页眉和页脚,选择在单元格下方插入行 , 行数中填入 3,这时在列表列上方多了3行;




编辑表头。依次将报表头的列名拖入或编辑在相应的新插入的单元格,对于需要合并的单元格可留空;




合并单元格。选择 国家/区域- 登上装备之间的五个空白单元格,然后单击工具栏中的 合并单元格,使其成为一个单元格,同样的方法对其他的空白单元格进行合并。



2.jpg


4955739.jpg


4955782.jpg


调整报表头单元格的边框、文本字体以及位置,然后设置列表的列标题为 隐藏( 默认是列表开头),再设置整体的方框类型为无,从而隐藏原列表的列表头以及页眉行。



4956389.jpg


设置在分部区域列上分组。单击分部区域列,选择工具栏中的分组按钮,数据就会根据 分部区域列进行分组。



至此,本期内容为大家介绍了如何创建复杂中国式交叉表和如何创建复杂中国式列表,下期会为大家介绍纵向合并交叉表的使用、横向合并交叉表的使用、用SQL编写列表的使用、用SQL编写交叉表的使用。希望大家能够持续关注,谢谢。



文档提供下载:

123.bmp

2013-11-25
页数11
浏览24061
下载435

已下载用户的评价7.96分

您还未下载该资料,不能发表评价;
查看我的 待评价资源
xuruhongxuruhong其它ccb2017-05-27
有用
非常感谢楼主的分享!
sarveosarveo商业智能工程师yb2016-04-30
没用
要钱呀?
走心制怒走心制怒软件开发工程师道有2016-04-25
没用
版主给力~蟹蟹
慧生喜乐慧生喜乐其它jinrong2016-04-23
没用
好贵,没钱,先支持一下。
zegzegzeg222zegzegzeg222软件开发工程师122016-04-22
没用
感谢分享,希望能研究出更便捷的方法
powerlitaopowerlitao技术经理中国建设银行2016-04-20
没用
看看复杂的开发
xianghanxianghan网站开发工程师lianbang2016-04-17
没用
版主太给力了
q10336951q10336951其它深圳市大家投互联网金融股份有限公司2016-04-16
没用
学习学习
converseconverse系统分析师bpm2016-04-14
没用
猛补恶补,准备搞BI的
net2817net2817系统运维工程师萤石2016-04-09
没用
学习一下

贡献者

qinxinxu软件架构设计师,中软国际(昆明)
cognoser
X社区推广