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

     



  • 相关阅读:
    Python实用笔记 (24)面向对象高级编程——使用@property
    Python实用笔记 (23)面向对象高级编程——使用__slots__
    Python实用笔记 (22)面向对象编程——实例属性和类属性
    Python实用笔记 (21)面向对象编程——获取对象信息
    Python实用笔记 (20)面向对象编程——继承和多态
    Python实用笔记 (19)面向对象编程——访问限制
    Python实用笔记 (18)面向对象编程——类和实例
    Python实用笔记 (17)模块
    Python实用笔记 (16)函数式编程——偏函数
    Python实用笔记 (15)函数式编程——装饰器
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299445.html
Copyright © 2020-2023  润新知