cognos report studio中动态排序

浏览: 4605

动态排序,取top n这样的需求,可以说是BI项目的标配。本文将介绍一种简单有效的动态排序方式。 先看效果:

11l.gif

开发页面如下:

11.png

原理: 列表是通过序号这一列进行排序的,序号这一列的内容由参数控制,点击列名上的“”将改变序号的内容。从而实现动态排序。

参考: http://www.ibm.com/developerworks/cn/analytics/library/ba-1605-cognosreportjs/index.html

实现:在列表的查询中新建新建列对应的排序项 内容为

22.png

新建“序号”查询计算项:

33.png

拖入值提示对应参数px1,并做如下设置:

44.png

55.png

js代码内容

1

<div style="display:none">

2

</div>

3

<script>
//获取 cognos 中的值提示对象
var form=getFormWarpRequest();
var sortItem=form._oLstChoicesSORT1;
function sortIt(flag){
if(flag==1){
sortItem[0].checked=true;
}else if(flag==2){
sortItem[1].checked=true;
}else if(flag==3){
sortItem[2].checked=true;
}else if(flag==4){
sortItem[3].checked=true;
}else{
sortItem[4].checked=true;
}
promptButtonFinish();
}
</script>

4到8都是非常类似的,传递不同值让单选按钮组选中不同项

<u onclick=sortIt(1) style="cursor:hand;text-decoration:none">↑</u>

至此,开发完成!

-----------------------------------------------总结--------------------------------------------

这样做不仅实现了动态排序,而且通过序号进行过滤可以方便的取到top n的数据。 通过修改rank函数能进行倒序。

Cognos,BI技术交流群 347488829。

Tableau,BI技术交流群 161474757

欢迎加入讨论交流。

推荐 10
本文由 攻城的狮子 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

4 个评论

为何这么牛逼
真屌
我稀罕你
就是叼

要回复文章请先登录注册