您的位置:首页 > 其它

FORM开发之键性弹性域开发

2013-12-13 15:29 288 查看

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





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: