转:FORM:客制化Form的菜单栏和右鍵菜單
Oracle EBS还允许客制化Form的菜单栏。
用户最多可以定义45个form-level的trigger,名称必须为SPECIALn,
其中SPECIAL1 to SPECIAL15属于Tools菜单项,
SPECIAL16 to SPECIAL30属于Reports菜单项,
SPECIAL31 to SPECIAL45属于Actions菜单项,其中Reports、Actions的名称可以被修改。
修改代码为:
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 POPUP10的trigger中,应该在正确的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:客制化Form的菜单栏和右鍵菜單的更多相关文章
- (整理)FORM:Oracle EBS客制化Form的菜单栏用法说明
用户最多可以定义45个form-level的trigger,名称必须为SPECIALn, 其中SPECIAL1 to SPECIAL15属于Tools菜单项,放在“工具”主菜单下. SPECIAL16 ...
- Form_通过Zoom客制化跳转页面功能(案例)
2012-09-08 Created By BaoXinjian
- Dynamics AX 2012 R2 客制化RDP报表参数对话框
当我们在使用RDP报表时,AX会根据Data Contract,自动生成报表参数对话框上的字段控件.一般情况下,该对话框能够满足我们的需求,但是如果有较为复杂或特殊的需求,就要我们对该对话框进行客制化 ...
- BEvent_客制化BusinessEvent通过PLSQL Procedurer接受消息传递(案例)
2014-06-27 Created By BaoXinjian
- Android MTK6580 客制化关机充电动画
1.客制化关机充电图片 vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/xxx 找到对应分辨率替换 2.调整显示图片位置.大小 ...
- Report_客制化Excel报表中的XLS标记(案例)
2014-06-06 Created By BaoXinjian
- Android RRO机制的运用-----google开机向导客制化
上周五的时候领导分了一个任务,客户让在google开机向导里面增加一页,首先就想到了android的Overlay,然后网上搜了下,发下有很多人写了这方面的技术.而且写的都还不错,所以本篇只当记录作用 ...
- BEvent_客制化Event Agent通道(案例)(待整理)
2014-09-09 Created By BaoXinjian
- BEvent_客制化BusinessEvent通过Workflow Event接受消息传递(案例)
2014-08-03 Created By BaoXinjian
随机推荐
- bzoj2753
第一问dfs不说 第二问很容易让人想到最小树形图,但是我不会,而且时间复杂度也不允许 还有什么不同的方法呢? 首先想到的是prim的思想,设根节点已经确定,其他点未确定 我们就不断从已确定的点延伸,找 ...
- BZOJ_3039_玉蟾宫_(动态规划+悬线法)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=3039 n*m的矩阵由R和F组成,求全是F的子矩阵的大小的三倍. 分析 悬线法: 浅谈用极大化思 ...
- 【转】下载太慢?简单设置让iTunes提速十几倍
原文网址:http://www.startos.com/mac/ipad/tips/2010120713291.html 今年可以说是苹果欢笑的一年,ipad的发布,iphone4的成功,让用苹果设备 ...
- Android Matrix用法
Matrix,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放.平移.旋转等操作. 首先介绍一下矩阵运算.加法和减法就不用说了,太简单了,对应位相加就好.图像处理,主要用到的是乘法 ...
- spring3 mvc使用注解方式时,不能扫描jar包里面的类
使用eclipse export工具时选中Add directory entries可以解决.
- 图文教您轻松学会用PS设计制作名片
图文教您轻松学会用PS设计制作名片 http://jingyan.baidu.com/article/49711c614e7370fa441b7ca3.html
- [liu yanling]软件测试分为哪几个计划过程阶段
a) 计划阶段:编写测试计划,搭建测试环境,准备测试数据b) 设计阶段:编写测试用例(需求分析和测试用例文档)c) 执行阶段:执行测试用例,生成缺陷d) 报告阶段:测试报告,改进意见
- jquery.cookie 使用文档,$.cookie() 文档教程, js 操作 cookie 教程文档。
jquery.cookie 使用文档,$.cookie() 文档教程, js 操作 cookie 教程文档. jquery.cookie中的操作: jquery.cookie.js是一个基于jquer ...
- Dumpbin的使用方法
推荐:http://blog.csdn.net/blpluto/article/details/5706757
- 【Java基础】基础概念
Java 关键字 被Java语言赋予特定含义的单词 组成关键字的字母全部小写 goto和const作为保留字存在,目前并不使用 一般关键字在IDE中会高亮 用于定义数据类型的关键字 class i ...