报表小功能之计算当页合计&&图表最大最小化

本资料无预览

如感兴趣请 1 金币购买后下载

立即下载

资料简介:

报表小功能之计算当页合计&&图表最大最小化


一、行业背景
现如今科技发展的速度远大于人类进步的速度,越来越多报表工具和功能进入大家的视线,并引导着业务人员产生各种各样的联想,以至于他们提需求的时候完全不考虑技术能否实现,各种复杂的样式,各种绚丽的色彩,各种奇葩的功能,接踵而至。当技术人员费劲脑汁,累死累活的满足了他们的欲望之后,得到的一句话是:怎么跟我想象的不一样?
吐槽了一段,心里平衡了,当我们遇到一些特殊的需求,其实不用太急于去考虑怎么样实现,而可以先站在技术的角度去思考,这样的需求是否能够顺利的实施,并转换问题的角度,从多方面去分析问题的处理方法,其实往往变通一下就可以达到要求,但却减少了开发的难度和工作量。这是一个成功的技术人员应该具备的能力,用你的思想引领着业务人员,跟他们说明技术的难点但同时却能实现他们的要求,而不是被他们牵着鼻子走。(本人现在依然被牵着鼻子)
该作品主要是针对银行的卡业务方面,该银行在早期发行过一批卡,后来全省要求统一发行新卡,但老卡还有人在使用,如果老卡丢失或者注销,以后办理就开新卡,老卡不再发行,但是信息会转入到新卡上。有些客户既有老卡也有新卡,根据卡数和户数来确定机构下是否实现一户一卡,该报表统计机构中老卡与新卡比例,以确定还有多少老卡还在使用。

二、应用方向
银行等金融业

三、ETL工具
DATASTAGE,从DW中抽取满足条件的数据,按照日期、机构等维度做统计,高度汇总之后落入应用数据库中

四、数据库
DB29.1

五、报表所要达到的效果
1.以图+表的方式展现统计数据,一方面从整体的角度去看各个机构的卡数和户数,另一方面可以从表中读取各个机构的明细卡数户数情况,以图文并茂的方式展现报表,使业务人员更直观的查看想要的数据。
2.该报表中添加了一些特殊功能,当页字段合计和图表最小化。之前坛子里一哥们提到过这个问题,有关人士分析cognos8版本完全靠RS是没有办法实现的,后来尝试了一下结合JS的方法去实现,是可以达到效果的,这里会用两种方法来实现当页合计的效果。图片最小化是我一个技术朋友遇到的需求,图片要求每页显示,业务人员说:图那么大,占了太多空间,想看点东西还要往下拖。后来他把图片做小,业务人员说:图那么小,文字都快看不清了。(各位看到这里有何感想,总之我是晕过去了……)后来给图表做一个最大化和最小化的按钮,虽然功能不是特别的好,但业务人员还算满意……(这年头什么奇葩的事情都有)

六、设计思路
该作品没有选择多维度的OLAP,列表本身很简单,只是把ETL的数据按照各维度汇总展现,主要的度量值是实有户数和正常卡数。所以选择了柱状和折线的组合图方式来展现这两种度量,日期币种作为参数,以机构作为X轴,可以清晰的看出各个机构下的户数卡数的对应关系。

1.png

这里把两个度量设置为系列,把原来机构的数据项值改为报表表达式,利用机构层级表选定上级机构为支行,报表中取网点机构,为了使图片美观,这里取机构的简写substring ([结果].[机构名称],10,2)

在计算卡数户数比例的时候,需要注意的是先按机构汇总,再相除,而不能先相除再汇总。这里采用简单的仪表板图作为输出,简约而不简单,既可以清晰的展示比例数据,又可以直观的看到各个机构的比例图,很实用。机构采用同样的处理方式

下面主要是一个下拉框和一个列表,下拉框选择列表的度量字段,从而得出该字段在当页的合计值。这里用两种方法实现:
方法一:JS+RS值提示。由于RS计算当页合计不容易实现,所以这里采用JS的方式来做运算。新建一个值提示,设置参数名称,该参数的意义是列表的列标题名称。通过JS获取到该控件,并得到它的值。当我们得到选择哪一列后,通过JS获取当列值进行运算,并把结果值放在页面上显示出来。

这里的值提示采用的是静态选项+自动提交的方法,手工把列表中的度量字段写入到下拉选项,这样做的好处是避免遇到非度量字段,只要是进入下拉选项中,都是可以做当页合计的运算
方法二:JS+JS。值提示控件也完全由JS的select生成,并会读取所有列表的列标题作为select选项,这样做就会出现上面的问题,非度量字段,所以这里加了一个比较人性化的控制,如果选择非度量字段时,弹出框提示重新选择。

两种方法的比较:方法一的优点在于手工添加静态选项,随心所欲,可以按照需求很方便的实现,缺点是每次选择一个新的选项,页面自动提交一次,感觉这点不是太好。方法二的优点是在页面上做合计,选择新的选项不会重刷页面,速度很快,不影响报表页面上的其他素材。

图片最小化是由于该图片在每页都要显示才需要做的,如果不指定重复每一页,那么翻页后图就不存在了。由于通过JS获取图表较难,所以改为控制div的方式。首先把图放在块中,给块定义名称,通过该名称来获取到块,设置块的display属性,这样就可以对块中的图做隐藏处理了。同时定义两张图片(没有重做,只是从win7上截的最大化最小化图标),并指定他们对应的function,此时就可以满足图片展开和隐藏了。

小弟试验的机器是在AIXcognos8.4版本,同时在本机的windows cognos10版本上也做了试验,8版本获取列表、DIV等元素和10版本
有所不同,10版本经过修改代码之后也可以实现以上功能。具体代码都会在附件中给出。
该作品的色彩方面选择了常用的蓝色和浅绿色作为基色,同时修改了组合图和仪表盘的颜色,使整体的色彩看上去更协调。没有很华丽,朴素一直是小弟的风格(其实是本人对美工一窍不通……)
这里用到老贝提供立体边框和JS优化RS组件,这两帖真的很实用,原本比较单调的图表,加上以后真的是色彩的升华。感谢老贝,
帮忙宣传一下:
http://www.cognoschina.net/club/viewthread.php?tid=8716&highlight=
http://www.cognoschina.net/club/viewthread.php?tid=6349&highlight=

附件为作品的演示视频(两个视频对应两种方法),各种功能的JS代码,以及文档整理,欢迎各位提出宝贵意见。



资料提供下载:                           
2011-06-21
页数1
浏览541
下载86

已下载用户的评价7.79分

您还未下载该资料,不能发表评价;
查看我的 待评价资源
本资料还没有评价。

贡献者

liuyang项目经理,skyon
好好学习,天天向上
X社区推广