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.在系统中注册弹性域

 



智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告