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.在系统中注册弹性域
相关文章推荐
- Unity 阴影
- C++代码风格06
- Spring入门5.事务管理机制
- linux 学习笔记 (初学)篇1
- 员工系统
- 在没有 Activity 参数的情况下获取屏幕的长宽
- .net程序员的出路
- Tinyxml的使用
- 《一个程序员的奋斗史》书摘(二)
- 幻世(OurDream)2D图形引擎使用教程9——处理操作输入(3)
- 《Java 并发编程实战》读书笔记之二:图文讲述同步的另一个重要功能:内存可见性
- 二叉查找树--插入、删除、查找
- eclipse中部署编写extjs代码时候的检测插件spket
- /usr/bin/ld: cannot find -lc 解决
- 使用wait_event_interruptible,何时会被唤醒?
- C#使用集合组织数据(HashTable、ArrayList、List<T>,Dictionary<K,V>
- linux shell编程指南第二十三章------脚本调试
- oracle学习.[INS-08109] 验证状态 'getOCMDetails' 的输入时出现意外错误。
- Android之把eoe客户端的关联ViewPager的滑动条勾出来使用
- 【乱搞】【AOJ-298】Rings of square grid