FORM开发之键性弹性域开发

1.创建表时带有键弹性域字段

SUMMARY_FLAG            VARCHAR2(1) ,  /* 必须有此字段 */
  ENABLED_FLAG            VARCHAR2(1) ,  /* 必须有此字段 */
  START_DATE_ACTIVE       DATE ,         /* 必须有此字段 */
  END_DATE_ACTIVE         DATE ,  /* 必须有此字段 */
  LAST_UPDATED_BY         NUMBER ,  /* 必须有此字段 */
  LAST_UPDATE_DATE        DATE ,   /* 必须有此字段 */
  SEGMENT1                VARCHAR2(30) , 
  SEGMENT2                VARCHAR2(30) , 
  SEGMENT3                VARCHAR2(30) , 
  SEGMENT4                VARCHAR2(30) , 
  SEGMENT5                VARCHAR2(30) , 
  SEGMENT6                VARCHAR2(30) , 
  SEGMENT7                VARCHAR2(30) , 
  SEGMENT8                VARCHAR2(30) , 
  SEGMENT9                VARCHAR2(30) , 
  SEGMENT10               VARCHAR2(30) , 
  SEGMENT11               VARCHAR2(30) , 
  SEGMENT12               VARCHAR2(30) , 
  SEGMENT13               VARCHAR2(30) , 
  SEGMENT14               VARCHAR2(30) , 
  SEGMENT15               VARCHAR2(30) 

2.注册表和列

注册表

execute ad_dd.register_table('EDV', 'FLEX_LN_KEY', 'T');


注册列

execute ad_dd.register_column('EDV', 'FLEX_LN_KEY', 'KEY_FLEX_STRUCTURE_ID', 1, 'NUMBER', 38, 'Y','N' );
execute ad_dd.register_column('EDV', 'FLEX_LN_KEY', 'KEY_FLEX_ID', 2, 'NUMBER', 38, 'Y', 'N' );
execute ad_dd.register_column('EDV', 'FLEX_LN_KEY', 'SEGMENT1', 3, 'VARCHAR2', 30, 'Y', 'N' );
execute ad_dd.register_column('EDV', 'FLEX_LN_KEY', 'SEGMENT2', 4, 'VARCHAR2', 30, 'Y', 'N' );
execute ad_dd.register_column('EDV', 'FLEX_LN_KEY', 'SEGMENT3', 5, 'VARCHAR2', 30, 'Y', 'N' );
execute ad_dd.register_column('EDV', 'FLEX_LN_KEY', 'SEGMENT4', 6, 'VARCHAR2', 30, 'Y', 'N' );
execute ad_dd.register_column('EDV', 'FLEX_LN_KEY', 'SEGMENT5', 7, 'VARCHAR2', 30, 'Y', 'N' );


3.FORM中开发弹性域

(1)创建ITEM,可参考我的FORM开发之说明性弹性域开发

加入非基表域用于容纳弹性域,我们做一个ITEM叫KEY_FLEXITEM

注意这个ITEM的CLASS属性为TEXT_ITEM, LOV处选择ENABLE_LIST_LAMP,并把检查有效性设为NO。

 

(2)在when-new-form-instance中注册弹性域

fnd_key_flex.define (
    block => 'T_KEY_FLEX', -- 操作的block
    field => 'KEY_FLEXITEM', -- 创建的item,用来容纳键弹性域
    id => 'KEY_ID', --保存key弹性域的唯一值
    appl_short_name => 'EDV',
    code => 'K_LN', -- 键弹性域的注册代码 fnd_id_flex_structures.id_flex_code
    num => '101' --fnd_id_flex_structures.id_flex_num
);

(3)分别在BLOCK级别加入如下的触发器(可参考说明性弹性域的应用代码).

PRE-QUERY

PRE-UPDATE

PRE-INSERT

POST-QUERY

WHEN-NEW-ITEM-INSTANCE

WHEN-VALIDATE-ITEM

WHEN-VALIDATE-RECORD

其触发器的代码分别对应

FND_FLEX.EVENT('PRE-QUERY');

FND_FLEX.EVENT('PRE-UPDATE');

FND_FLEX.EVENT('PRE-INSERT');

FND_FLEX.EVENT('POST-QUERY');

FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE');

FND_FLEX.EVENT('WHEN-VALIDATE-ITEM');

FND_FLEX.EVENT('WHEN-VALIDATE-RECORD');


 

4.在系统中注册弹性域

 



转载于:https://www.cnblogs.com/wanghang/p/6299445.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值