最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

【经典】Cognos 报表右键菜单完美解决方案,修改源码

[复制链接]
跳转到指定楼层
楼主
发表于 2014-8-5 21:52:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
这两天测试组需求,想让我们去掉多余的右键菜单(如:传承),减少用户操作犯错的机会。

我是用java开发的经验,分析出,既然它是一个HTML那么他肯定有他加载的位置,既然他可以做权限控制那么一定是动态的,

下一步就看他是动态生成的HTML还是动态的控制隐藏或者修改。发现右键菜单在页面初始化的时候由一段JS控制生成右键菜单,

那么如果我找到了这段JS,我就可以完美的控制菜单的生成(找JS的过程很复杂,先通过css 在通过其他手段)。

js脚本的位置如下:I:\ibm\cognos\c10\webapps\p2pd\rv\cv.js  154行

[JavaScript] 纯文本查看 复制代码
/*去掉“术语表”
if(this.getCV().bCanUseGlossary && this.m_oStrings.sGlossaryTextItem && sBlacklist.indexOf(' RV_CONTEXT_MENU_GLOSSARY ') == -1)
{
bGlossary = true;
this.m_contextMenu.add(gMenuSeperator);
this.m_glossaryItem = new CMenuItem(this.m_contextMenu, this.m_oStrings.sGlossaryTextItem, this.getCVObjectRef() + ".executeAction('Glossary');", sWebContentRoot + '/rv/images/action_glossary.gif', gMenuItemStyle, sWebContentRoot, sSkin);
this.m_glossaryItem.disable();
}
*/
/*去掉“传承”
if (this.isLinegaeVisisble(sBlacklist))
{
if (!bGlossary)
{
this.m_contextMenu.add(gMenuSeperator);
}
this.m_lineageItem = new CMenuItem(this.m_contextMenu, this.m_oStrings.sLineageTextItem, this.getCVObjectRef() + ".executeAction('Lineage');", sWebContentRoot + '/rv/images/action_lineage.gif', gMenuItemStyle, sWebContentRoot, sSkin);
this.m_lineageItem.disable();
}
*/


I:\ibm\cognos\c10\webapps\p2pd\rv\CDrillManager.js  1243行

[JavaScript] 纯文本查看 复制代码
/*去掉“相关连接”;去掉“搜索”
if (gtContextMenu != null) {

if(typeof gMenuSeperator != "undefined" && gtContextMenu.getNumItems() > 0 && (this.getCV().bCanUseCognosViewerIndexSearch || sBlackList.indexOf(' RV_CONTEXT_MENU_GOTO_RELATED_LINKS ') == -1))
{
gtContextMenu.add(gMenuSeperator);
}

var moreContextMenuItem = new CMenuItem(gtContextMenu, this.getCV().oStrings.sMoreTextItem, this.getCVObjectRef() + '.getDrillMgr().launchGoToPage();', '', gMenuItemStyle, this.getCV().getWebContentRoot(), this.getCV().getSkin());

if (this.getCV().bCanUseCognosViewerIndexSearch) {

searchMenuItem = new CMenuItem(gtContextMenu, this.getCV().oStrings.sSearchTextItem, this.getCVObjectRef() + '.getDrillMgr().launchSearchPage();', '', gMenuItemStyle, this.getCV().getWebContentRoot(), this.getCV().getSkin());

}

if(sBlackList.indexOf(' RV_CONTEXT_MENU_GOTO_RELATED_LINKS ') != -1)
{
moreContextMenuItem.hide();
}
else if(selectionController == null || selectionController.getModelDrillThroughEnabled() == false)
{
moreContextMenuItem.disable();
}
}

if (searchMenuItem != null && selectionController != null)
{
var allSelections = selectionController.getAllSelectedObjects();
if (allSelections == null || allSelections.length === 0)
{
searchMenuItem.disable();
}
}
*/



找到生成右键菜单的js代码进行JS注释,就可以了。想修改在某维度的某级别禁止向上追溯要用另外一种方法。以后有时间在发。

如果想加入自己的新菜单只需按照相应的代码片段样式编写即可。


楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-4-25 15:29

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表