cognos中有列表和图形,但是表和图之间总是孤立的,刷新页面也都是全页面刷新,于是经理在想,是否有个方法能在点击cognos列
表时旁边的cognos图表能够实时的变动,类似flex中的绑定效果。在老板的强烈催促下,经理也没什么时间去网上去找去问,觉得凭自己以前
的一些J2EE老底子加上report studio中强大的HTML项目貌似可以搞定,于是开搞了...
首先给大家看看数据库
一、先用report studio建立一个带参数的cognos饼图报表(这里可以随便是什么图),报表灰常简单
设置参数名为par3,并把此报表保存为a1
二、再用report studio建立一个列表,如图
经理在这里多用了html项目,因为cognos在页面上封装的太好了,只能这样拼凑脚本。
基本的原理就是在列表旁边放置一个html项目,其内容是一个iframe,其连接也就是刚刚做好的那个带参数的饼图报表。
然后在列表中放置一个label,在label中设置点击事件出来iframe链接(其实这样就换了一个参数)及重新载入。
其中
1的代码如下,他主要是点击的列表触发的事件
1
{4 sname="http://localhost/cognos8/cgi-bin/cognos.cgi?b_action=cognosViewer&ui.object=/content/package[@name='aa']/report[@name='a1']&ui.action=run&run.prompt=false&p_par3="+par;5 frameChart.location.href=sname;6 }7
2到6主要就是定义一个含有点击事件的label
2的代码为
1
3其实是一个报表表达式,它是参数
1
[query1].[arr2]
4的代码为
1
');"style="width:100%;height:100%">
5也是一个报表表达式,他是设置该列显示的内容
1
[arr2]
6的代码为,他收个尾
1
7的代码主要是iframe,然后就是刷新等待时候的一个等待提示
7的代码为
1
2
4
拼滴我累死了.....
OK,我们来看看效果
我先点击一下第一个单元格
再点击第二个
注意,列表不会刷新哦,有点像ajax的效果。
后来想想,其实功能挺简单的。
例子比较简陋,只是想传达一个思想,希望以后大家有好东西能一起交流。
posted on 2010-08-20 17:37 张元Won 阅读(4110) 评论(4) 编辑 收藏 所属分类: Cognos