一般而言,可以在URL里使用cv.toolbar=false,但如此一来则所有的toolbar都消失了;同时也可以修改后台system.xml文件添加隐藏元素,但会将牵涉到所有报表。于是就产生了给某些报表自定义toolbar控件,昨天研究出来的方法是,直接重写js即可实现:
优点:
①、根据某些特殊报表的需求,自定义保留或去除toolbar里的某些按钮功能;
②、不会牵涉其它报表
实现方法:
1、打开Report Studio加入HTML控件
2、查看页面原始代码后,复制工具栏的JS代码到HTML
oCV_NS_.rvMainWnd.setToolbar({"namespace":"_NS_","divId":"CVToolbar_NS_","style":"toolbar","S":[...<略>...]});
oCV_NS_.rvMainWnd.init();
oCVSC_NS_.attachObserver(oCV_NS_.rvMainWnd);
3、去除你想要的工具按钮相应的脚本,比如 ‘保留版本’、‘追溯’和‘运行’ 等按钮
删除相关的JS代码,如下
对于setToolbar函数后面的内容里,去除一下内容的JS代码:
{"I":{"N":"keepThisVersion","E":"保留此版本","C":"/cognos8/rv/images/action_keep_report.gif","M":{"id":"keepThisVersionoCV_NS_","Y":"dropDown","IS":[{"I":{"N":"emailReport","E":"电子邮件报表","C":"/cognos8/rv/images/action_send_report.gif","A":"oCV_NS_.getRV().SendReport(false);"}},{"I":{"N":"saveReport","E":"保存报表","C":"/cognos8/rv/images/action_save_report_output.gif","A":"oCV_NS_.getRV().SaveReport(false);"}},{"I":{"N":"saveAsReportView","E":"另存为报表视图","C":"/cognos8/rv/images/action_save_report_view.gif","A":"oCV_NS_.getRV().SaveAsReportView(false);"}}]}}},{"P":{"Y":"vertical_line"}},{"P":{"Y":"vertical_line"}},{"B":{"N":"runReport","A":"oCV_NS_.getRV().RunReport();","O":"运行","C":"/cognos8/rv/images/action_run.gif"}},{"P":{"Y":"vertical_line"}},{"B":{"N":"drillDown","A":"oCV_NS_.getDrillMgr().rvDrillDown();","O":"向下追溯","C":"/cognos8/rv/images/action_drill_down.gif","D":"true"}},{"B":{"N":"drillUp","A":"oCV_NS_.getDrillMgr().rvDrillUp();","O":"向上追溯","C":"/cognos8/rv/images/action_drill_up.gif","D":"true"}},{"B":{"N":"goto","A":"oCV_NS_.getDrillMgr().launchGoToPage(null, true);","O":"转到","C":"/cognos8/rv/images/action_go_to.gif","M":{"id":"gotooCV_NS_","Y":"dropDown","A":"oCV_NS_.getDrillMgr().getDrillThroughParameters();"}}},{"P":{"Y":"vertical_line"}},
4、将剩下的代码复制到HTML,在connection里运行,即可得到相应的结果
是不是很简单?若您想把 RS编辑按钮、导出按钮、添加此报表按钮菜单去除,那么现在用这个方法也来做一遍吧,可别把代码删错了哦!