BIEE header欄新增下拉選單
BIEE header欄新增下拉選單:
簡述
BIEE提供了對外開放的介面,使得global header中可以新增連結按鈕,但無法提供header上的下拉選單。
參見《System Administrator's Guide for Oracle Business Intelligence Enterprise Edition》的Providing Custom Links in Presentation Services章節。
但通過修改BIEE相應的js,其實是可以在header欄中新增下拉選單的。
通過chrome瀏覽器的指令碼跟蹤,可以看到BIEE的header欄是通過header.js指令碼生成的。
header.js指令碼存在於四個目錄(BIEE HOME= D:\app\OBI):
? 原始ear目錄:D:\app\OBI\Oracle_BI1\bifoundation\jee\analytics.ear\analytics.war\res\b_mozilla
(上述路徑為ear和war包解壓形成)
? Web目錄:D:\app\OBI\Oracle_BI1\bifoundation\web\appv2\res\b_mozilla
? Domail臨時目錄silp1v:D:\app\OBI\user_projects\domains\bifoundation_domain\servers\AdminServer\tmp\_WL_user\analytics_11.1.1\silp1v\war\res\b_mozilla
? Domail臨時目錄z45ouk:
D:\app\OBI\user_projects\domains\bifoundation_domain\servers\AdminServer\tmp\_WL_user\analytics_11.1.1\z45ouk\analytics.war\res\b_mozilla
注意:Domail臨時目錄可被刪除,在下次啟動weblogic中介軟體時,會從ear重新解壓複製相應檔案到臨時目錄中。
增加header欄下拉選單時,建議修改ear目錄和web目錄的header.js指令碼,然後複製到domail臨時目錄中。
修改思路
初始狀態下,header欄已經有較多的下拉選單,如“儀表盤”、“新建”、“開啟”…,可以參考這些下拉選單的生成方法,複製並修改相關程式碼,生成新的下拉選單。
如本次新增下拉選單就參考了“新建”的生成方法:
“新建”選單的生成命令如下(header.js,523行):
k.push(new saw.header.Menubar.MenuModel("new",saw.header.getLocalizedString("kmsgHeaderNew"),saw.header.getResUrl("catalog/new_ena.png"),new obips.Callback(this,this.onNewMenuClicked),new obips.Callback(this,this.onDisplayNewMenu),saw.header.getLocalizedString("kmsgHeaderNewDropDownMenu")));
k.push(null)
解讀程式碼:
saw.header.getLocalizedString("kmsgHeaderNew")獲取的是選單的localized名稱
saw.header.getResUrl("catalog/new_ena.png")獲取的是選單旁圖示的引用
new obips.Callback(this,this.onNewMenuClicked)表示選單可進行點選相關操作
new obips.Callback(this,this.onDisplayNewMenu)表示選單的下拉顯示物件(主要)
saw.header.getLocalizedString("kmsgHeaderNewDropDownMenu")表示下拉動作的localized命名
經過調整,新加命令如下,程式碼位置可置於上述程式碼之後:
(可根據具體需要來重新定義位置,此段程式碼加在“新建”程式碼之後,新增的選單位置即在“新建”選單之後,同理:如加在“儀表盤”程式碼之後,則位置即在“儀表盤”選單之後)
k.push(new saw.header.Menubar.MenuModel("new",saw.header.getLocalizedString("kmsgHeaderNew1"),saw.header.getResUrl("catalog/new_ena.png"),new obips.Callback(this,this.onNewMenuClicked),new obips.Callback(this,this.onDisplayzhangcMenu),saw.header.getLocalizedString("kmsgHeaderNewDropDownMenu1")));
k.push(null)
注意上述程式碼中紅色部分:
kmsgHeaderNew1表示為新加入的選單新生成一個localized名稱
kmsgHeaderNewDropDownMenu1表示為新選單的下拉選單新生成一個localized名稱
關鍵的onDisplayzhangcMenu表示點選選單時引用的新function
注:生成localized名稱的方法在“附:修改localized名稱”中詳述
onDisplayzhangcMenu及相關程式碼如下:
saw.header.NavBar.prototype.onDisplayzhangcMenu=function(c,b){
this.zhangcMenuDiv=saw.createChildElement(document.body,"div","HeaderPopupWindow");
this.zhangcMenuDiv.id="zhangcMenuHeaderMainDiv";
h="http://www.baidu.com";
u="http://www.google.com.hk";
v=this.createzhangcLink()+":zhangc";
w=" target="_blank"";
document.getElementById("zhangcMenuHeaderMainDiv").innerHTML="baidu
google
Current
Path";
saw.header.Menubar.getManager().showPopupPanel(c.menuSpan,this.zhangcMenuDiv);
}
;
saw.header.NavBar.prototype.createzhangcLink=function(){
var a="";
var c=document.getElementById("idViewStateDiv");
var g=c.getAttribute("statePath");
var e=obips.views.ViewController.getController(g);
a+=saw.commandToURL("Dashboard");
a+="&PortalPath="+saw.encodeURIComponent(e.getViewEnvParam("PortalPath"));
a+="&Page="+saw.encodeURIComponent(e.getViewEnvParam("Page"));
var f="";
var i=document.getElementById("idPageID");
f=i.getAttribute("pageID");
a+="&PageIdentifier="+saw.encodeURIComponent(f);
return a}
;
此段程式碼可放置在“新建”選單對應的顯示function:onDisplayNewMenu之後,具體位置可自訂。
saw.header.getResUrl("catalog/new_ena.png")如果需要修改,也可參照生成localized名稱的方法自行調整。
結果顯示
修改完header.js檔案後,複製到前文提及的4個目錄中,重啟BIEE(中介軟體)即可出現新的的header欄。
新增選單欄的效果如下:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10009036/viewspace-1061276/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CSS導航欄及下拉選單CSS
- select下拉選單新增不重複項
- 在Excel表格中新增下拉選單功能Excel
- 使用Vue實現下拉選單框批量新增選項Vue
- HTML5-網頁標欄的下拉選單HTML網頁
- 下拉選單
- 如何使用 Bootstrap class 向按鈕新增下拉選單boot
- jquery select下拉選單新增或者刪除option項jQuery
- 迴圈方式為select下拉選單新增年份
- vue下拉選單Vue
- html - 下拉選單HTML
- Spinner下拉選單
- 前臺呼叫下拉選單框值(列舉欄位)
- 成品直播原始碼推薦,Android 禁止下拉選單欄原始碼Android
- MFC對話方塊新增選單欄並新增滑鼠單擊響應
- Oracle BIEE的登入首頁去掉語言選擇欄Oracle
- js如何動態為select下拉選單新增option項JS
- jquery新增或者刪除select下拉選單項程式碼jQuery
- 通過ajax方式動態新增select下拉選單的option選項
- JavaScript實現HTML導航欄下拉選單[懸浮顯示]JavaScriptHTML
- css導航欄滑鼠hover的時候就出現下拉選單CSS
- Bootstrap下拉選單disabledboot
- Vue.js自定義下拉選單,如何實現在下拉選單區域外點選即可關閉下拉選單的功能Vue.js
- 關於新增修改時如何獲取下拉選單資訊方法?
- kendoUI 多選下拉選單 kendoMultiSelectUI
- CSS 二級下拉選單CSS
- HTML select下拉選單HTML
- HTML select 下拉選單HTML
- CSS二級下拉選單CSS
- jQuery 二級下拉選單jQuery
- DIV下拉式選單(轉)
- 刪除和新增select下拉選單option項程式碼例項
- 網頁導航欄滑鼠移上去自動彈出下拉選單網頁
- 工具欄選單
- wx選單欄
- 選單欄[MenuStrip]
- Js/JQuery下拉框新增新選項JSjQuery
- 選中select下拉選單項提交表單