[分享]想不想关闭toolbar,然后把特定的按钮搬到报表中去?

本资料无预览

如感兴趣请购买后下载

立即下载

资料简介:
此贴免费开放三天,然后我要收钱了!!!     一切为了老婆,要给她换那件衣服,嘿嘿,大家别骂俺贪心了。

想不想把报表顶上的系统toolbar里特定的几个按钮搬到报表页面中或表头上去,然后关闭系统toolbar?

前几天用户在查看报表的时候想要全部显示按不同方式view的按钮,但是我又不想开放上面那个系统的toolbar给用户,怕他们没事乱点,于是就想要是能把toolbar里的那个view按钮和下面的菜单搬到表头里去,然后依然把toolbar关闭就好了,

原来的按不同格式导出按钮在toolbar上面。

1.GIF




在查看了报表的source code后,发现里面有一个setTtoolbar的函数是写toolbar按钮的,于是找到服务器的webcontent目录,想去看看那个setToolbar函数是干什么的,结果不看还好, 一看人就晕了。在那个目录下搜了几十个js文件出来了,没办法,只好一个个的打开研究,在看的天昏地暗,老眼昏花,头昏脑涨。。。。。。之后,最后终于搞明白怎么回事了

其实实现方法非常简单,一共就四条语句。     再一次想到那句话。。。。要是早知道吃最后一个饼子的时候吃饱的,那我就不吃前面那些饼子了,唉。。。。。。。

实现步骤:
一、在页面上拖一个html控件,在里面放一个div,设置div的id
二、然后在后面写上四条js语句:
 
var oToolbar = new CViewerToolbar();
oToolbar.init();
oToolbar.load();
oToolbar.draw();

第一条语句是创建一个toolbar实例,
然后第二条语句初始化对象,初始化的时候需要提供toolbar control参数,这个参数是必须是一个json字符串,这个json字符串可以直接从报表的source code里拷贝,注意截取完整就可以了。注意把json字符串里的divId改成上面设定的ID
第三条语句不知道有什么用,在原来的js里有这句,如果不load就下面的draw就不出来。
第四条语就是画toolbar了.

完成上面的工作后,就可以在应用程序里的报表url里加上cv.toolbar=false关闭toolbar,这样用户可以使用系统toolbar的特定功能,但是其他的工具都给屏蔽了,而且可以把系统的header和toolbar关掉,报表也美观了。

下面是一个具体的示例源码,只取view按钮,可以拷贝直接使用,就是只显示view图标和下面的按不同format打开报表的菜单。
 
把导出按钮“移到”报表表头后的效果


因为这个tool button是在报表页面里转换成其他的格式比如PDF后原页面就成了空白,这样就转不回来了,为了避免这样,可以再稍微改一下那个json字符串,把里面的oCV_NS_.getRV().viewReport函数换成一个window.open函数,这样就会打开一个新窗口,原报表不变。

另外注意那个oCV_NS_,表示这个是在cognos connection里运行时有效,如果是在RS编辑报表的时候测试运行,把 _NS_ 换成 RS 即可。

抛砖引玉,大家在此基础上各显神通吧。
2011-05-30
浏览45953
下载11

已下载用户的评价

您还未下载该资料,不能发表评价;
查看我的 待评价资源
PrimaPrima软件开发工程师上海2015-07-06
没用
学习ing。。。。。
hhfhhf项目经理hhf2015-06-26
没用
好,很好,很强大,JS心得大师
flycodeflycode软件开发工程师博雅2015-05-05
没用
:lol1看看,学习一下
magaochen521magaochen521软件开发工程师Lenovo2015-03-27
没用
果然是高手,看的我都流口水了……太给力了,足见楼主功底深厚
小葱葱小葱葱研发工程师ibm2015-01-29
没用
看看 谢谢
lihy114lihy114数据库开发工程师河南郑州2015-01-19
没用
在cognos 10.1上面测试 ,没有通过,想把toolbar中的向上追溯按钮挪下来
ikimiheikimihe软件开发工程师IBM2015-01-16
没用
非常好 学习
bingniao1bingniao1系统分析师qm2014-12-02
没用
感谢分享,来学习一下
bingniao1bingniao1系统分析师qm2014-12-02
没用
学习学习高手经验
ygnhzxygnhzx软件开发工程师南华2014-10-22
没用
这个必须学习

贡献者

junix2008项目经理,耐普罗塑胶五金制品(深圳)有限公司
X社区推广