Oracle ERP系统工具栏上ZOOM按钮的开发

在ERP标准custom.pll文件中,填写下面类似代码:

FUNCTION zoom_available RETURN BOOLEAN IS

form_name varchar2(30) := name_in('system.current_form');

block_name varchar2(30) := name_in('system.cursor_block');

BEGIN

if (form_name = 'WIPDJMDF') then

return TRUE;

elsif (form_name = 'POXSCASL' and block_name = 'ASL_SUPPLIERS') then

return TRUE;

else

return FALSE;

end if;

END zoom_available;上段代码表示我们在form_name为:“WIPDJMDF”,“POXSCASL”的时候ZOOM按钮可用;

然后在自己定义的pll文件中响应ZOOM按钮:procedure event(event_name varchar2) is

Form_Name Varchar2(30) := Name_In('system.current_form');

Block_Name Varchar2(30) := Name_In('system.current_block');

Item_Name Varchar2(30) := Name_In('system.current_item');

Form_Status Varchar2(30) := Name_In('system.form_status');

l_Record_Status Varchar2(30) := Name_In('system.record_status');

v_Stage Varchar2(1000);

v_item_id number;

V_vendor_name varchar2(300);

Begin/*when form. instance*/

DEFAULT_VALUE(null,'GLOBAL.XXUTS_MFG_REVISION_MPN'); /*全局参数*/

if (event_name = 'ZOOM' and form_name = 'POXSCASL') then

v_item_id:=Name_In('ASL_ITEMS.ITEM_ID');

FND_FUNCTION.EXECUTE(/*调用另一Form*/

function_name=>'XXUTS_MFG_ITEM_REVISION',

other_params =>'INVENTORY_ITEM_ID ='||v_item_id);

End if;

If (form_name = 'POXSCASL') and (event_name = 'WHEN-NEW-ITEM-INSTANCE') THEN

if NAME_IN('GLOBAL.XXUTS_MFG_REVISION_MPN') is not null then

copy(name_in('global.XXUTS_MFG_REVISION_MPN'),'ASL_SUPPLIERS.PRIMARY_VENDOR_ITEM');

COPY(null, 'global.XXUTS_MFG_REVISION_MPN');

end if;

end if;

end event;

当系统不自动激活菜单上的图标时,可以在数据块的 block-level 的 when-new-block-instance trigger中
    添加如下代码:
     以zoom为例子:set_menu_item_property('VIEW.ZOOM',ENABLED,PROPERTY_TURE)
    在form-level 的相应的trigger(比如zoom trigger)中改写下列代码:
      custom.event('ZOOM')

 

custom.pll是EBS标准的一个library,当系统启动的时候会加载这个library。

很多时候,我们会需要写一些pll文件,比如控制Form上某些item的属性,如果是控制标准Form的某些属性,那么我们就可以通过Library来实现,而不用去动标准的Form(一般我们建议不去修改标准的Form)。再比如在工具条上增加一些菜单,等等。

当然,所有这些我们都可以通过直接修改custom.pll来实现,但是,我们不建议这么做,我们可以copy custom.pll重命名为:xx_cn_custom.pll (名字自己取),然后把xx_cn_custom.pll加载到custom.pll下 (在custom.pll的event里,加上这段代码即可:xx_cn_custom.event;),这样,系统启动的时候就会通过custom.pll也把xx_cn_custom.pll启动起来,那么,以后有什么客户化的library都可以在xx_cn_custom.pll里面修改了。比如,我客户化了一个叫xx_wip_custom.pll的library,那么我只要在xx_cn_custom.pll的event的procedure里加上:xx_wip_custom.event;就可以了。

这样做的好处就是降低了风险,因为custom.pll是标准的library,不管是调试还是其它的,都会影响到全局,当我们加载xx_cn_custom.pll之后,就会避免这些问题

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25103190/viewspace-722007/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25103190/viewspace-722007/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值