1. 程式人生 > >客製化Form的選單欄和右鍵選單

客製化Form的選單欄和右鍵選單

Oracle EBS還允許客製化Form的選單欄。

使用者最多可以定義45form-leveltrigger,名稱必須為SPECIALn,其中SPECIAL1 to SPECIAL15屬於Tools選單項,SPECIAL16 to SPECIAL30屬於Reports選單項, SPECIAL31 to SPECIAL45屬於Actions選單項,其中ReportsActions的名稱可以被修改。

修改程式碼為:

APP_SPECIAL.INSTANTIATE('SPECIAL_B','庫存');
APP_SPECIAL.ENABLE('SPECIAL_B',PROPERTY_On);

其中SPECIAL,SPECIAL_B,SPECIAL_C分別代表的是Tools,Reports,Actions。

初始化示例:

  IF (FND_FUNCTION.TEST('DEMVC_DEMVCEOR_PRINT_ORDER')) THEN

 app_special.instantiate('SPECIAL1','&Print Order');

 app_special.enable('SPECIAL1',PROPERTY_ON);

 app_special.instantiate('SPECIAL2','Specia&l 2 Line', '',TRUE,'LINE');

    app_special.instantiate('SPECIAL3_CHECKBOX','Spe&cial 3 Box w Line', '',TRUE,'LINE');

    app_special.set_checkbox('SPECIAL3_CHECKBOX','TRUE');

    app_special.instantiate('SPECIAL4_CHECKBOX','Special &4 Box');

    app_special.set_checkbox('SPECIAL4_CHECKBOX','TRUE');

    app_special.instantiate('SPECIAL18','Specia&l 18 Line SEP', separator=>'LINE');

    app_special.instantiate

('SPECIAL32','Specia&l 32 Line', '',TRUE,'LINE');

    app_special.instantiate('SPECIAL33','Specia&l 33');

    app_special.instantiate('SPECIAL30','Specia&l 30');

    app_special.instantiate('SPECIAL31','Specia&l 31 Line','',TRUE,'LINE');

    app_special.instantiate('SPECIAL45','Spe&cial 45');

 /* and display a button on the form */

    app_item_property.set_property('orders.print_order',

                               DISPLAYED, PROPERTY_ON);

    ELSE

    app_item_property.set_property('orders.print_order',

                               DISPLAYED, PROPERTY_OFF);

    END IF;

app_special.instantiate設定選單項的文字說明,app_special.enable設定選單項是否可用,app_special.set_checkbox設定check_box選單項的選定狀態。

form-level SPECIALn trigger中,定義了這些選單項選中後的處理程式碼,如下所示:

Eg1

  demvceor.PRINT_ORDER('SPECIAL1');

Eg2

 if (app_special.get_checkbox('SPECIAL3_CHECKBOX')='TRUE') then

     fnd_message.debug('Special 3 is True!');

else

     fnd_message.debug('Special 3 is False!');

end if;

  右鍵選單也可以自定義,form-level PRE-POPUP-MENU trigger引用APPSTAND.EVENT('PRE-POPUP-MENU')建立default menu;建立block /item level pre-pop-menu trigger(Execution HierarchyàAfter)

block /item level pre-pop-menu trigger(Execution HierarchyàAfter)中呼叫 app_popup.instantate函式初始化右鍵選單項:

   procedure APP_POPUP.INSTANTIATE(

option_name varchar2,

txt varchar2,

initially_enabled boolean default true,

        separator varchar2 default null);

   Example

  • This example results in a menu that has a line above the second custom entry and

   has the third custom entry grayed out (disabled)

APP_POPUP.INSTANTIATE(

‘POPUP1’,’First Entry’);

APP_POPUP.INSTANTIATE(

‘POPUP2’,’Second Entry’, TRUE, ‘LINE’);

APP_POPUP.INSTANTIATE(

‘POPUP3’,’Third Entry’, FALSE);

  右鍵選單的處理函式寫在名為POPUP1 through POPUP10trigger中,應該在正確的level上建立這些trigger (通常是block/item level)

客製化選單

  Effect:

  

  Usage:呼叫 app_special.instantiate包

  Examples:

  1、增加一個自定義Form Level的觸發器(SPECIAL11)

  

  2、增加測試程式碼如下:

  ――――――――――――――――――――――――――――――――――――――――――――――

  declare

  v_invoice_num varchar2(50);

  begin

  v_invoice_num := '選單欄客製化100';

  fnd_message.debug(v_invoice_num);

  end;

  ―――――――――――――――――――――――――――――――――――――――――――――――

  3、在Form WHEN-NEW-FORM-INSTANCEFJ 進行呼叫:

  APP_SPECIAL.INSTANTIATE('SPECIAL11','測試選單2', '', TRUE, 'LINE');

  ―――――――――――――――――――――――――――――――――――――――――――――――

  4、一些特殊說明:

  上面自定義FORMS級觸發器,名字必須定義為“SPECIAL+數字‖,否則會報錯。並且數字的大小決定了選單出現的先後順序。數字還有更大作用就是決定了,自定義選單選項放在哪個主選單下。

  SPECIAL1—SPECIAL15在“工具”主選單下。

  SPECIAL16—SPECIAL30在“報表”主選單下。

  SPECIAL31—SPECIAL45在“活動”主選單下。

  SPECIAL46以上就直接報錯了。^_^

  如下圖

  

  5、 控制自定義選單的是否啟用可用。

  使用app_special.enable函式可以控制選單是否可以使用。

  例如:基於不同的資料塊,實現選單的不可用。在block的‖when-new-block-instance‖中加入

  效果:

  app_special.enable('SPECIAL1',property_off);

  效果

  

  6、 在自定義的選單上使用checkbox按鈕。

  ①增加一個自定義Form Level的觸發器(SPECIAL1_CHECKBOX),程式碼如下:

  if app_special.get_checkbox('SPECIAL1_CHECKBOX')='TRUE' then

  fnd_message.debug('Special 1 is True!');

  else

  fnd_message.debug('Special 1 is False!');

  end if;

  注:使用app_special.get_checkbox來獲取checkbox的狀態值。

  ②在Form的WHEN-NEW-FORM-INSTANCE觸發器中初始化選單。

  app_special.instantiate('SPECIAL1_CHECKBOX','Spe&cial 1 Box w Line', '',TRUE,'LINE');

  app_special.set_checkbox('SPECIAL1_CHECKBOX','TRUE');

  注:app_special.set_checkbox是對checkbox進行賦值操作。

  ③效果如下:

  

客製化右鍵選單

  1、 首先如果是要為某個ITEM,另外開發一個右鍵選單。這個需要直接按照FORM的開發教程,自定義一個POPUP選單就可以了。但本文講的在EBS所有的快捷選單上,額外增加所需的選單按鈕。也就是要圖上所示的快捷選單上增加選單按鈕。

  

  2、 在FROM-LEVEL增加自定義觸發器(名字規則為:POPUP+N)

  

  3、 ITEM的“PRE-POPUP-MENU”觸發器上初始化選單。

  APP_POPUP.INSTANTIATE('POPUP1','First Entry');

  APP_POPUP.INSTANTIATE('POPUP10','SECONED Entry',TRUE,'LINE');

  APP_POPUP.INSTANTIATE('POPUP3','THREE Entry',FALSE,NULL);

  

  4、 如果是整個BLOCK的ITEM都需要客製化快捷選單,可以在BLOCK的“PRE-POPUP-MENU”定義。

  APP_POPUP.INSTANTIATE('POPUP1','global');

  

  呼叫EBS日期控制元件

  1、 首先將ITEM的LOV屬性設定為“ENABLE_LIST_LAMP”、列表驗證屬性設定為“否”

  

  2、在ITEM的“KEY-LISTVAL”解發器下加入對下程式碼:

  BEGIN

  calendar.show();

  END;

  3、注意:ITEM對應資料庫型別必須是DATE型別,否則會報frm-40700錯誤。效果如下:

  

相關推薦

Form選單選單

Oracle EBS還允許客製化Form的選單欄。 使用者最多可以定義45個form-level的trigger,名稱必須為SPECIALn,其中SPECIAL1 to SPECIAL15屬於Tools選單項,SPECIAL16 to SPECIAL30屬於Reports

製作Unity外掛之-頂部選單選單拓展

經常會拓展Unity指令碼,幾乎都是為了操作方便與使用便捷,這裡簡單介紹說明下Unity自定義指令碼外掛的方式及快捷鍵的使用,大神請無視。 製作Unity**頂部**選單欄拓展,在前面的批量處理資源

來看看標準選單選單的玩法

我的郵箱:[email protected]    歡迎大家和我交流程式設計心得日常應用中,選單主要分為兩種:(1) 標準選單(處於應用程式選單欄處的選單)    (2)右鍵快捷選單幾乎你所見

WPF 通知欄圖示選單

WPF沒有自帶的通知欄圖示元件,需要引用Windows類庫,具體程式碼如下: public MainWindow() { InitializeComponent(); icon();

*#06*中所顯示IMEIMEID號的

最近接到了一個產線反饋的問題,經過復現發現現象如下:在撥號介面輸入*#06#,插入移動聯通卡或者出現imei號正確,插入電信卡時出現的meid號是錯誤的,顯示的仍然是imei號,列印log後發現根

佈局:高度已知,佈局一個三佈局,左寬度為200px,中間自適應 浮動佈局詳解

需求:高度已知為200px,寫出三欄佈局,左欄和右欄各位200px,中間自適應,如下圖所示: 方法一:float浮動佈局 原理是:定義三個區塊,需要注意的是中間的區塊放在右邊區塊的下面,統一設定高度為200px,然後設定左邊欄寬度為200px並且float:left,設定右邊欄寬度為200px並且fl

Android-恢復出廠設定但保留檔案

很久沒有記錄了,持之以恆做一件事,需要一定的毅力吶!  最近遇到了一個需求,要求恢復出廠設定保留內建sd卡下某個目錄的檔案。思來想去,從驅動那邊備份校準訊號檔案得到了一些思路。因為帶通話設定的裝置需要進行校準,我們會將校準的檔案儲存在/data下。具體做法呢,在執行恢復出廠設定時,將此檔案

js靜止開啟選單控制檯

document.oncontextmenu = new Function("return false;"); document.onkeydown = document.onkeyup = document.onkeypress = function (e) { va

Qt學習(3)——選單工具

 0、建立專案: 前面步驟一樣,到下圖基類換一下: 1、選單欄 標頭檔案: 一些函式原型宣告: void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget, Qt::Orient

MT3561平臺 GT928觸控式螢幕驅動觸控的開關

MT3561 開光觸控式螢幕GT928邏輯 1 . MT3561 觸控式螢幕的驅動檔案路徑: kernel-3.18/drivers/input/touchscreen/mediatek/GT928/gt9xx_driver.c 2. 需求: 提供介面控制觸

VC++單文件程式固定選單工具

MainFrm.cpp框架類下,找到OnCreate方法 m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY); m_wndToolBar.EnableDocking(

Win7刪除選單中“圖形屬性”“圖形選項”

       完win7作業系統後,打完驅動在桌面右鍵會出現如下兩個選項,平時沒啥用又佔用空間,那麼如何刪掉這兩個選項呢?      操作步驟:   1、在執行中輸入 regedit 確定開啟登錄檔;   2、依次單擊展開HKEY_CLASSES_ROOTDirectoryBa

android 7.0平臺虛擬導航按鍵(隱藏NavigationBar,上滑顯示NavigationBar)

如圖,需求是增加一個按鈕可以隱藏NavigationBar,上滑顯示NavigationBar。  參考文章: 1.首先新建一個hide_show.xml,其中systemui:keyCode="142"為事件值,相當與F12. <?xml versi

Tornado 的 StaticFile 的 404 not found page.

滿簡單的,多包一層就可以處理掉。 The file specified in default_filename should be in given static path. So if you move error.htmlto assets/js directory, than navigate to 

[iOS] TableViewCell (Custom TableViewCell)

客製化TableViewCell, 照著這3篇做,就成功了,還滿簡單的。 實作出來的結果: 如果是使用標準的內建cell: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSInd

語言與時區問題

客製化語言與時區問題 正常改預設語言路徑: L之前: 修改預設語言 operator_SFR_MEO/mediatek/config/up40_h405f_meo/ProjectConfig.mk MTK_PRODUCT_LOCALES=en_US pt_PT fr_FR es_ES i

Android------過濾設定應用列表中某個應用

Code Review / O1_MP2 / alps-release-o1.mp2-default.git / commitdiff ? search: re summary | shortlog | log | commit | commitdiff | review | t

【Qt】選單、工具、狀態列、選單的實現

在QMainWidget基礎上實現選單欄、工具欄、狀態列、右鍵選單。 標頭檔案: #ifndef GWDEMO_H #define GWDEMO_H #include <QMainWindow> #include <QMenu> #include <Q

[Scala] Interpolation « Terrence的宅宅幻想

簡單來說就是字串可以加的前輟字,範例如下 s"hello $word" raw"\\\\\\" 今天我想改造query method query(conn, "select * f

Android RRO機制的運用-----google開機嚮導

上週五的時候領導分了一個任務,客戶讓在google開機嚮導裡面增加一頁,首先就想到了android的Overlay,然後網上搜了下,發下有很多人寫了這方面的技術。而且寫的都還不錯,所以本篇只當記錄作用吧,列下寫的比較好的部落格: http://developer.sonymobile