ORACLE EBS FORM 二次开发常用小技巧

时间:2023-03-09 17:23:19
ORACLE EBS FORM 二次开发常用小技巧

1.锁住当前行

Set_Item_Instance_Property('main.import_flag',

CURRENT_RECORD,

UPDATE_ALLOWED,

PROPERTY_OFF);

用在WHEN-NEW-RECORD-INSTANCE 或者POST-QUERY中。

同:app_item_property.set_property('MAIN.REF_COST',ALTERABLE,PROPERTY_ON) ;

2.设置记录的颜色

app_record.highlight('RED_REC');

3.窗口居中

app_window.set_window_position('WINDOW_NAME','CENTER');

4.最大化窗口时自动扩展文件夹数据块

在WHEN-WINDOW-RESIZED中添加以下代码即可。

if :system.event_window in ('MAIN') then

app_folder.event('WHEN-WINDOW-RESIZED');

end if;

5.Form中调用forms基本参数方式

FND_FUNCTION.EXECUTE(FUNCTION_NAME=>'CUXSOSETUP',

OPEN_FLAG=>'Y',

SESSION_FLAG=>'Y',

OTHER_PARAMS=>NULL);

其它参数传入OTHER_PARAMS即可。

6.动态设置当前行指定列的必输属性

Set_Item_Instance_Property(item_name, CURRENT_RECORD, REQUIRED,PROPERTY_TRUE); 如:

if :CUX_WORKHOUR_EMP.ATTRIBUTE2 <> :CUX_WORKHOUR_EMP.ATTRIBUTE1 then

Set_Item_Instance_Property('CUX_WORKHOUR_EMP.MODIFY_REASON', CURRENT_RECORD,

REQUIRED,PROPERTY_TRUE);

if :CUX_WORKHOUR_EMP.MODIFY_REASON is null then

:CUX_WORKHOUR_EMP.MODIFY_REASON := '123';

:CUX_WORKHOUR_EMP.MODIFY_REASON := null ;

fnd_message.set_string('请输入调整原因.');

fnd_message.show;

end if;

else

if :CUX_WORKHOUR_EMP.ATTRIBUTE4 = :CUX_WORKHOUR_EMP.ATTRIBUTE3 then

Set_Item_Instance_Property('CUX_WORKHOUR_EMP.MODIFY_REASON',

CURRENT_RECORD, REQUIRED,PROPERTY_FALSE);

end if;

end if;

7.增加菜单 在 FORM级的when-new-form-instance

APP_SPECIAL.INSTANTIATE('SPECIAL1','取消需求行', '', TRUE, 'LINE');

8.LOV指定初始值后需在WHEN-NEW-RRECORD-INSTANCE用以下语句模拟验证, 否则会弹出验证框.代码如下:

app_item_property.set_property('DETAIL_D.DEMAND_STATUS_DESC',

ITEM_IS_VALID,property_on);