IT咨询服务商业智能

Cognos报表去除不必要图标按钮

要求能够给某些指定的报表自定义toolbar。一般而言,可以在URL里使用cv.toolbar=false,但如此一来则所有的toolbar都消失了;同时也可以修改后台system.xml文件添加隐藏元素,但会将牵涉到所有报表。于是就产生了给某些报表自定义toolbar控件,昨天研究出来的方法是,直接重写js即可...显示全部
要求能够给某些指定的报表自定义toolbar。一般而言,可以在URL里使用cv.toolbar=false,但如此一来则所有的toolbar都消失了;同时也可以修改后台system.xml文件添加隐藏元素,但会将牵涉到所有报表。于是就产生了给某些报表自定义toolbar控件,昨天研究出来的方法是,直接重写js即可实现:
优点:
①、根据某些特殊报表的需求,自定义保留或去除toolbar里的某些按钮功能;

②、不会牵涉其它报表
实现方法:
1、打开Report Studio加入HTML控件
2、查看页面原始代码后,复制工具栏的JS代码到HTML
1.oCV_NS_.rvMainWnd.setToolbar({"namespace":"_NS_","divId":"CVToolbar_NS_","style":"toolbar","S":[...<略>...]});   
2.oCV_NS_.rvMainWnd.init();   
3.oCVSC_NS_.attachObserver(oCV_NS_.rvMainWnd);  
3、去除你想要的工具按钮相应的脚本,以及去除主页按钮。
    具体实现方法是:在报表中加入html控件,写js代码。如图

1.png


删除相关的JS代码,如下



主要是重写了oCV_NS_.rvMainWnd .setToolbar函数,
具体代码如下:
 
1.oCV_NS_.rvMainWnd   
2.        .setToolbar({   
3.            "namespace" : "_NS_",   
4.            "divId" : "CVToolbar_NS_",   
5.            "style" : "toolbar",   
6.            "S" : [ {   
7.                "B" : {   
8.                    "N" : "runIn",   
9.                    "M" : {   
10.                        "id" : "runInoCV_NS_",   
11.                        "Y" : "dropDown",   
12.                        "IS" : [   
13.                                {   
14.                                    "I" : {   
15.                                        "N" : "viewInHTML",   
16.                                        "A" : "oCV_NS_.getRV().viewReport('HTML');",   
17.                                        "E" : "以 HTML 格式查看",   
18.                                        "C" : "/p2pd/rv/images/action_view_html.gif"  
19.                                    }   
20.                                },   
21.                                {   
22.                                    "I" : {   
23.                                        "N" : "viewInPDF",   
24.                                        "A" : "oCV_NS_.getRV().viewReport('PDF');",   
25.                                        "E" : "以 PDF 格式查看",   
26.                                        "C" : "/p2pd/rv/images/action_view_pdf.gif"  
27.                                    }   
28.                                },   
29.                                {   
30.                                    "I" : {   
31.                                        "N" : "viewInXML",   
32.                                        "A" : "oCV_NS_.getRV().viewReport('XML');",   
33.                                        "E" : "以 XML 格式查看",   
34.                                        "C" : "/p2pd/rv/images/action_view_xml.gif"  
35.                                    }   
36.                                },   
37.                                {   
38.                                    "I" : {   
39.                                        "N" : "viewInExcel",   
40.                                        "E" : "以 Excel 选项查看",   
41.                                        "C" : "/p2pd/rv/images/action_view_excel_2000_single_sheet.gif",   
42.                                        "M" : {   
43.                                            "id" : "viewInExceloCV_NS_",   
44.                                            "Y" : "cascaded",   
45.                                            "IS" : [ {   
46.                                                "I" : {   
47.                                                    "N" : "viewInspreadsheetML",   
48.                                                    "A" : "oCV_NS_.getRV().viewReport('spreadsheetML');",   
49.                                                    "E" : "以 Excel 2007 格式查看",   
50.                                                    "C" : "/p2pd/rv/images/action_view_excel_2007.gif"  
51.  
52.                                                }   
53.                                            } ]   
54.                                        }   
55.                                    }   
56.                                } ]   
57.                    }   
58.                }   
59.            } ]   
60.        });   
61.  
62.oCV_NS_.rvMainWnd.setBannerToolbar({   
63.    "namespace" : "_NS_",   
64.    "divId" : "CVBanner_NS_",   
65.    "style" : "banner",   
66.    "S" : [ {   
67.        "T" : {   
68.            "N" : "userName",   
69.            "E" : ""  
70.        }   
71.    }, {   
72.        "I" : {   
73.            "N" : "logOnOff",   
74.            "M" : {   
75.                "id" : "logOnOffoCV_NS_",   
76.                "Y" : "dropDown",   
77.                "H" : "true",   
78.                "IS" : []   
79.            }   
80.        }   
81.    }, {   
82.        "P" : {   
83.            "Y" : "vertical_line"  
84.        }   
85.    }, {   
86.        "L" : {   
87.            "N" : "about",   
88.            "E" : "关于",   
89.            "A" : "oCV_NS_.getRV().about();"  
90.        }   
91.    } ]   
92.});   
93.oCV_NS_.rvMainWnd.init();   
94.oCVSC_NS_.attachObserver(oCV_NS_.rvMainWnd);  


实现效果如下:

另附cognos8.4的oCV_NS_.rvMainWnd  .setToolbar函数的原来全部代码:
 
1.oCV_NS_.rvMainWnd   
2.        .setToolbar({   
3.            "namespace" : "_NS_",   
4.            "divId" : "CVToolbar_NS_",   
5.            "style" : "toolbar",   
6.            "S" : [   
7.                    {   
8.                        "I" : {   
9.                            "N" : "keepThisVersion",   
10.                            "E" : "保留此版本",   
11.                            "C" : "/p2pd/rv/images/action_keep_report.gif",   
12.                            "M" : {   
13.                                "id" : "keepThisVersionoCV_NS_",   
14.                                "Y" : "dropDown",   
15.                                "IS" : [   
16.                                        {   
17.                                            "I" : {   
18.                                                "N" : "emailReport",   
19.                                                "E" : "电子邮件报表",   
20.                                                "C" : "/p2pd/rv/images/action_send_report.gif",   
21.                                                "A" : "oCV_NS_.getRV().SendReport(false);"  
22.                                            }   
23.                                        },   
24.                                        {   
25.                                            "I" : {   
26.                                                "N" : "saveReport",   
27.                                                "E" : "保存报表",   
28.                                                "C" : "/p2pd/rv/images/action_save_report_output.gif",   
29.                                                "A" : "oCV_NS_.getRV().SaveReport(false);"  
30.                                            }   
31.                                        },   
32.                                        {   
33.                                            "I" : {   
34.                                                "N" : "saveAsReportView",   
35.                                                "E" : "另存为报表视图",   
36.                                                "C" : "/p2pd/rv/images/action_save_report_view.gif",   
37.                                                "A" : "oCV_NS_.getRV().SaveAsReportView(false);"  
38.                                            }   
39.                                        } ]   
40.                            }   
41.                        }   
42.                    },   
43.                    {   
44.                        "P" : {   
45.                            "Y" : "vertical_line"  
46.                        }   
47.                    },   
48.                    {   
49.                        "P" : {   
50.                            "Y" : "vertical_line"  
51.                        }   
52.                    },   
53.                    {   
54.                        "B" : {   
55.                            "N" : "runReport",   
56.                            "A" : "oCV_NS_.getRV().RunReport();",   
57.                            "O" : "运行",   
58.                            "C" : "/p2pd/rv/images/action_run.gif"  
59.                        }   
60.                    },   
61.                    {   
62.                        "P" : {   
63.                            "Y" : "vertical_line"  
64.                        }   
65.                    },   
66.                    {   
67.                        "B" : {   
68.                            "N" : "drillDown",   
69.                            "A" : "oCV_NS_.getDrillMgr().rvDrillDown();",   
70.                            "O" : "向下追溯",   
71.                            "C" : "/p2pd/rv/images/action_drill_down.gif",   
72.                            "D" : "true"  
73.                        }   
74.                    },   
75.                    {   
76.                        "B" : {   
77.                            "N" : "drillUp",   
78.                            "A" : "oCV_NS_.getDrillMgr().rvDrillUp();",   
79.                            "O" : "向上追溯",   
80.                            "C" : "/p2pd/rv/images/action_drill_up.gif",   
81.                            "D" : "true"  
82.                        }   
83.                    },   
84.                    {   
85.                        "B" : {   
86.                            "N" : "goto",   
87.                            "A" : "oCV_NS_.getDrillMgr().launchGoToPage(null, true);",   
88.                            "O" : "转到",   
89.                            "C" : "/p2pd/rv/images/action_go_to.gif",   
90.                            "M" : {   
91.                                "id" : "gotooCV_NS_",   
92.                                "Y" : "dropDown",   
93.                                "A" : "oCV_NS_.getDrillMgr().getDrillThroughParameters();"  
94.                            }   
95.                        }   
96.                    },   
97.                    {   
98.                        "P" : {   
99.                            "Y" : "vertical_line"  
100.                        }   
101.                    },   
102.                    {   
103.                        "B" : {   
104.                            "N" : "runIn",   
105.                            "M" : {   
106.                                "id" : "runInoCV_NS_",   
107.                                "Y" : "dropDown",   
108.                                "IS" : [   
109.                                        {   
110.                                            "I" : {   
111.                                                "N" : "viewInHTML",   
112.                                                "A" : "oCV_NS_.getRV().viewReport('HTML');",   
113.                                                "E" : "以 HTML 格式查看",   
114.                                                "C" : "/p2pd/rv/images/action_view_html.gif"  
115.                                            }   
116.                                        },   
117.                                        {   
118.                                            "I" : {   
119.                                                "N" : "viewInPDF",   
120.                                                "A" : "oCV_NS_.getRV().viewReport('PDF');",   
121.                                                "E" : "以 PDF 格式查看",   
122.                                                "C" : "/p2pd/rv/images/action_view_pdf.gif"  
123.                                            }   
124.                                        },   
125.                                        {   
126.                                            "I" : {   
127.                                                "N" : "viewInXML",   
128.                                                "A" : "oCV_NS_.getRV().viewReport('XML');",   
129.                                                "E" : "以 XML 格式查看",   
130.                                                "C" : "/p2pd/rv/images/action_view_xml.gif"  
131.                                            }   
132.                                        },   
133.                                        {   
134.                                            "I" : {   
135.                                                "N" : "viewInExcel",   
136.                                                "E" : "以 Excel 选项查看",   
137.                                                "C" : "/p2pd/rv/images/action_view_excel_2000_single_sheet.gif",   
138.                                                "M" : {   
139.                                                    "id" : "viewInExceloCV_NS_",   
140.                                                    "Y" : "cascaded",   
141.                                                    "IS" : [ {   
142.                                                        "I" : {   
143.                                                            "N" : "viewInCSV",   
144.                                                            "A" : "oCV_NS_.getRV().viewReport('CSV');",   
145.                                                            "E" : "以 CSV 格式查看",   
146.                                                            "C" : "/p2pd/rv/images/action_view_csv.gif"  
147.                                                        }   
148.                                                    } ]   
149.                                                }   
150.                                            }   
151.                                        } ]   
152.                            }   
153.                        }   
154.                    },   
155.                    {   
156.                        "I" : {   
157.                            "N" : "addThisReport",   
158.                            "E" : "添加此报表",   
159.                            "C" : "/p2pd/rv/images/action_add_report.gif",   
160.                            "M" : {   
161.                                "id" : "addThisReportoCV_NS_",   
162.                                "Y" : "dropDown",   
163.                                "IS" : [ {   
164.                                    "I" : {   
165.                                        "N" : "addToMyFolders",   
166.                                        "A" : "oCV_NS_.getRV().launchNewGeneral("shortcut", "~/folder");",   
167.                                        "E" : "添加至“我的文件夹”",   
168.                                        "C" : "/p2pd/rv/images/action_add_Myfolder.gif"  
169.                                    }   
170.                                } ]   
171.                            }   
172.                        }   
173.                    }, {   
174.                        "P" : {   
175.                            "Y" : "vertical_line"  
176.                        }   
177.                    }, {   
178.                        "B" : {   
179.                            "N" : "openWith",   
180.                            "M" : {   
181.                                "id" : "openWithoCV_NS_",   
182.                                "Y" : "dropDown",   
183.                                "H" : "true",   
184.                                "IS" : []   
185.                            }   
186.                        }   
187.                    } ]   
188.        });   
189.oCV_NS_.rvMainWnd   
190.        .setBannerToolbar({   
191.            "namespace" : "_NS_",   
192.            "divId" : "CVBanner_NS_",   
193.            "style" : "banner",   
194.            "S" : [   
195.                    {   
196.                        "T" : {   
197.                            "N" : "userName",   
198.                            "E" : ""  
199.                        }   
200.                    },   
201.                    {   
202.                        "I" : {   
203.                            "N" : "logOnOff",   
204.                            "M" : {   
205.                                "id" : "logOnOffoCV_NS_",   
206.                                "Y" : "dropDown",   
207.                                "H" : "true",   
208.                                "IS" : []   
209.                            }   
210.                        }   
211.                    },   
212.                    {   
213.                        "P" : {   
214.                            "Y" : "vertical_line"  
215.                        }   
216.                    },   
217.                    {   
218.                        "B" : {   
219.                            "N" : "home",   
220.                            "O" : "主页",   
221.                            "C" : "/p2pd/skins/corporate/shared/images/action_home.gif",   
222.                            "A" : "oCV_NS_.getRV().returnHome("/p2pd/servlet/dispatch?b_action=xts.run&m=portal/main.xts");"  
223.                        }   
224.                    }, {   
225.                        "L" : {   
226.                            "N" : "about",   
227.                            "E" : "关于",   
228.                            "A" : "oCV_NS_.getRV().about();"  
229.                        }   
230.                    } ]   
231.        });   
232.oCV_NS_.rvMainWnd.init();   
233.oCVSC_NS_.attachObserver(oCV_NS_.rvMainWnd);  

此函数是cognos8.4版本的,其他版本是否有编号需要去查看,但此文做一个思路仅供参考。
收起
参与13

查看其它 11 个回答seraphly的回答

seraphlyseraphly技术顾问埃森哲
嗯,这个方法在10里好像不太好使
金融其它 · 2013-02-22
浏览816

回答者

seraphly
技术顾问埃森哲

seraphly 最近回答过的问题

回答状态

  • 发布时间:2013-02-22
  • 关注会员:1 人
  • 回答浏览:816
  • X社区推广