100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Cognos开发自定义排序规则的报表和自定义排名报表

Cognos开发自定义排序规则的报表和自定义排名报表

时间:2022-12-26 13:21:15

相关推荐

Cognos开发自定义排序规则的报表和自定义排名报表

Cognos开发自定义排序规则的报表和自定义排名报表

场景:有一个简单的销售数据分析,可以按照日期,按照商品类型来分析订单笔数和订单金额。

目的:用户可以自定义查看按照不同指标排序的数据,用户可以查看按照不同指标排名的前N名数据

一:功能及效果展示

效果1:进入报表,显示按默认指标排名的指定名次的数据(默认显示按订单金额排名的前5名)

效果2:改变排名规则,改变排名取值(例如:根据订单笔数排名,取前6,可以看到数据显示正常)

效果3:再次改变排名规则,报表自动刷新(例如:按订单金额排序,排名值不变,可以看到数据显示正常)

:报表开发技术重点

重点1:在列表的主查询中新建 '排名' 数据项

内容如下:

==========================================================

if(?sortmethod?=1)

then

(

rank ( [订单金额] for report)

)

else

(

rank ( [订单笔数] for report)

)

==========================================================

下面解释一下rank函数

rank (表达式 [ASC|DESC] {,表达式 [ASC|DESC]} [at 表达式 {,表达式}] [<for 选项>] [prefilter])

rank ([distinct] 表达式 [ASC|DESC] {,表达式 [ASC|DESC]} [<for 选项>] [prefilter])

<for 选项> ::= for 表达式 {,表达式}|for report|auto 返回选定数据项的排名值。排序顺序为可选;在默认情况下,采用降序(DESC)。如果两个或更多行排名相同,那么排名值 的序列中会有一个缺值(也称为 Olympic 排名)。“<for 选项>”定义函数的作用域。“at”选项定义聚合级别,只能在关系数 据源上下文中使用。Distinct 是与产品的较早版本兼容的替换表达式。空值排名最末。此函数出现在“GO 数据仓库(分析)” 数据包中的“ 年排名前 10 位的零售商”示样报表中。重点2:在列表的主查询中新建一个明细过滤器注意:过滤器应用于自动聚合之后(自动聚合是指报表会根据维度自动的汇总当前的度量值)重点3:友情提示的地方采用文本,文本值来源自参数值,随着变化而变化新建文本,选择文本来源 表达式内容为 ========================================================

if(

(ParamDisplayValue('sortmethod'))='1'

or

(ParamDisplayValue('sortmethod'))='按订单金额排名'

)

then

('按订单金额排名')

else

(

'按订单笔数排名'

)

========================================================

解释一下if中的第一个条件:因为值提示数据来源是静态选项集合,无法指定使用值和显示值,但又是

必选的,所以默认值为1,用做查询中。但是经过测试,报表运行中值提示参数的值其实是显示值中文

的,所以无论是1还是中文名称都显示为中文名称,第一次默认之后,在以后就按照中文名称判断了。

效果就成了报表上方的一句话:

上面部分的红色字体都来自于:参数值 动态传参。

重点4:报表是如何实现怎么排序的?

这里也可以说是一个重点,大家可以看到排序的地方就是在新建数据项‘排名’的时候了,有这么一个代码

rank ( [订单金额] for report)/rank ( [订单笔数] for report)

这里对报表进行了排序操作

但是如果想要报表出现排序后的效果,从大到小,从多到少的顺序,那么上面的代码必须被执行,所以必须

让‘排名’数据项在报表中出现,才可以实现排名,下面我们把排名从报表中移除看一下:

从上面可以看到 ,排序顺序变了,可能是按照默认的升序出现了,那么当是海里数据的时候,第一的效果就看不到了。

所以在做按指定指标排序的时候,排序数据项必须拖入报表中,才可以起到排序的作用,当然如果不需要出现排名这一

列的话,隐藏这一列即可。

Cognos reportstudio 中如何隐藏列?请参考:Cognos开发报表如何隐藏列?

效果已实现,文终于此。

posted on -04-03 16:40 kingstudy 阅读(...) 评论(...) 编辑 收藏

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。