要求能够给某些指定的报表自定义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代码。如图
删除相关的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版本的,其他版本是否有编号需要去查看,但此文做一个思路仅供参考。
收起