zoukankan      html  css  js  c++  java
  • FORM开发之说明性弹性域开发

    1.注册使用弹性域的表,字段

    注册表语法:ad_dd.register_table('所有者','表名','T自动扩展/S非自动扩展','下一区','自由','已使用')

    AD_DD.REGISTER_TABLE(p_appl_short_name in varchar2, --应用名简称/所有者
                                 p_tab_name        in varchar2, --表名
                                 p_tab_type        in varchar2, --T自动扩展/S非自动扩展/F
                                 p_next_extent     in number, --下一区
                                 p_pct_free        in number,
                                 p_pct_used        in number)
    


     

    注册列语法:executead_dd.register_column('所有者','表名','字段名',序号,'类型',字段宽度,是否为空,是否可以转换)

     

    AD_DD.REGISTER_COLUMN(p_appl_short_name in varchar2,
                                    p_tab_name        in varchar2, --应用名简称/所有者
                                    p_col_name        in varchar2, --列名
                                    p_col_seq         in number,   --序号,唯一
                                    p_col_type        in varchar2, --类型
                                    p_col_width       in number,   --字段宽度
                                    p_nullable        in varchar2, --是否为空
                                    p_translate       in varchar2, --是否可以转换
                                    p_precision       in number default null,
                                    p_scale           in number default null)


    检查注册成功与否:

    select ft.table_idfrom fnd_tables ft whereft.table_name='CUX_OM_POP_VALIDITY_ALL
     
     

    删除注册:

    executead_dd.delete_table('CUX','CUX_OM_POP_VALIDITY_ALL');

    注册表

    EXECUTE AD_DD.REGISTER_TABLE('CUX','CUX_AP_INVOICE','T',131072,10,);

    注册列

     

    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','LAST_UPDATE_DATE',41,'DATE',9,'N','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','LAST_UPDATE_LOGIN',42,'NUMBER',38,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','PROGRAM_APPLICATION_ID',43,'NUMBER',38,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','PROGRAM_ID',44,'NUMBER',38,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','PROGRAM_UPDATE_DATE',45,'DATE',9,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','REQUEST_ID',46,'NUMBER',38,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE_CATEGORY',47,'VARCHAR2',30,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE1',48,'VARCHAR2',240,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE2',49,'VARCHAR2',240,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE3',50,'VARCHAR2',240,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE4',51,'VARCHAR2',240,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE5',52,'VARCHAR2',240,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE6',53,'VARCHAR2',240,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE7',54,'VARCHAR2',240,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE8',55,'VARCHAR2',240,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE9',56,'VARCHAR2',240,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE10',57,'VARCHAR2',240,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE11',58,'VARCHAR2',240,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE12',59,'VARCHAR2',240,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE13',60,'VARCHAR2',240,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE14',61,'VARCHAR2',240,'Y','N');
    EXECUTE AD_DD.REGISTER_COLUMN('CUX','CUX_AP_INVOICE','ATTRIBUTE15',62,'VARCHAR2',240,'Y','N');


    2.系统中注册说明性弹性域



    应用:选择注册的应用

    名称:填写注册说明弹性域的名称(必须唯一)

    标题:弹性域的标题,在今后的应用中,此说明弹性域将会在窗口标题上显示在此定义的标题内容

    表应用:在注册表,列时指定的应用(appl_short_name

    表名:  选择注册的表名称

    结构列:必须也是存在于注册过的列,结构列的意义就是存放说明性弹性域上下文提示的值

    上下文提示:是在说明性弹性域上下文字段的标题描述

    3.FORM中开发弹性域

    (1):加入非基表域用于容纳弹性域,我们做一个ITEM叫DF 注意这个ITEM的CLASS属性为 TEXT_ITEM,LOV处选ENABLE_LIST_LAMP,并把检查有效性设为NO。

    (2):FORM中要包含所设置的弹性域如ATTRIBUTE_CATEGORY,ATTRIBUTE1,ATTRIBUTE2…... 注意这些域为基表项,设置CANVANS为NULL或者显示在画布上都可以

    (3):把DF放在CANVANS上,弄成弹性域的样子.设置其属性:值列表=ENABLE_LIST_LAMP

    (4):在FORM中注册弹性域

    为了FORM识别弹性域,在FORM级别的WHEN-NEW_FORM_INSTANCE 上加上如下的代码

    从列表中验证=否

    fnd_descr_flex.define(
        'FLEX_LN', -- form中的block name
        field=>'DF', -- form中的弹性域的item name
        appl_short_name=>'EDV', -- 注册弹性域在那个user下
        desc_flex_name=>'FLEX_LN' -- 注册弹性域的名称
    );
    

    具体参数及意思.如下

    含有弹性域的BLOCK         叫FLEX_LN

    DF                        我们命名的那个容纳弹性域的域.

     FLEX_LN                          我们注册的那个弹性域的名称.

    5):加入触发器以支持弹性域.

    分别在BLOCK级别加入如下的触发器.

    PRE-QUERY

    PRE-UPDATE

    PRE-INSERT

    POST-QUERY

    其触发器的代码分别对应

    (
    
    FND_FLEX.EVENT('PRE-QUERY');
    
    FND_FLEX.EVENT('PRE-UPDATE');
    
    FND_FLEX.EVENT('PRE-INSERT');
    
    FND_FLEX.EVENT('POST-QUERY');
    
    在容纳弹性域的域ITEM级别加入如下的触发器
    
    WHEN-VALIDATE_ITEM
    
    FND_FLEX.EVENT('WHEN-VALIDATE-ITEM');
    
    

    4.系统中启用弹性域

    路径 ApplicationDeveloper --> Flexfield --> Descriptive --> Segments

       弹性域设置结束后,需要将Freeze Flexfield Definition冻结才能使设置生效


    Application: 弹性域注册的应用名称

       Title: 弹性域标题,打开弹性域窗体时所显示的名称

       Freeze Flexfield Definition:冻结弹性域定义,修改时需要解除冻结,设置完成之后需要冻结才能生效

       Segment Separator:段分隔符

       Prompt: 上下文提示

       Value Set: 为上下文内容提供一个LOV值集选择

       Default Value:上下文默认值

       Reference Field:参考字段,作用是根据参考字段的值来判断显示哪一中弹性域(上下文)

       Global Data Elements:每个弹性的段信息中,都有一个默认的段定义 Global Data Elements。如果我们定义的弹性域只有一种段结构的话,可以直接在  Global Data Elements段中进行定义,如果有多个的话,需要在另创建记录进行段定义的需要,有一点需要说明的是,一旦有注册了的字段在 Global Data Elements中定义了结构的话,那么用户自己在创建其他的段结构,则不会显示在Global Data Elements中使用了的字段

       Parts: 自定义段结构

       Vehicle: 自定义段结构

     

       设置完成之后注意要冻结弹性域定义并保存


     

     

     

  • 相关阅读:
    JavaScript内部原理:浏览器的内幕
    DOM结构深度优先遍历(二):TreeWalker
    DOM结构深度优先遍历(一):NodeIterator
    Linux bc 命令
    两个小function实现XML和string相互转化
    Git 多用户配置
    Vue 新增的$attrs与$listeners的详解
    CSS mask遮罩
    flask之后端传值给前端
    python cv2在验证码识别中的使用
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299446.html
Copyright © 2011-2022 走看看