首页 > 其他分享 >EBS Form Builder:app_field.clear_dependent_fields和APP_FIELD.set_dependent_field的用法

EBS Form Builder:app_field.clear_dependent_fields和APP_FIELD.set_dependent_field的用法

时间:2023-03-01 14:44:40浏览次数:50  
标签:set dependent DEFAULT field VARCHAR2 NULL

用途:
可以调用APP_FIELD.clear_dependent_fields和APP_FIELD.set_dependent_field来将两个(或多个)Item建立关联,
当一个为空时,另一个不可录入,反正,可录入,且父Item Field变化时,子Fields清空。

APP_FIELD.clear_dependent_fields(
                            master_field VARCHAR2,
                                 field1       VARCHAR2,
                                 field2       VARCHAR2 DEFAULT NULL,
                                 field3       VARCHAR2 DEFAULT NULL,
                                 field4       VARCHAR2 DEFAULT NULL,
                                 field5       VARCHAR2 DEFAULT NULL,
                                 field6       VARCHAR2 DEFAULT NULL,
                                 field7       VARCHAR2 DEFAULT NULL,
                                 field8       VARCHAR2 DEFAULT NULL,
                                 field9       VARCHAR2 DEFAULT NULL,
                                 field10      VARCHAR2 DEFAULT NULL)

实现:
如果master_field为空,则清空后续所有fieldn.

APP_FIELD.set_dependent_field(
                              even                   VARCHAR2,
                              master_field        VARCHAR2,
                              dependent_field  VARCHAR2,
                              invalidate            BOOLEAN DEFAULT FALSE)

实现:
如果master_field为空,则dependent_Field的ENTERABLE为PROPERTY_OFF;
反之, 如果master_field不空,则dependent_Field的ENTERABLE为PROPERTY_ON。
event可以为'..VALIDATE..','INIT','PRE-RECORD', 'WHEN-NEW-RECORD-INSTANCE','POST-QUERY'。
这个Procedure其实调用了另外一个Procedure

APP_FIELD.set_dependent_field(
                           event                   VARCHAR2,
                           condition             BOOLEAN,
                           dependent_field  VARCHAR2,
                           invalidate            BOOLEAN DEFAULT FALSE)

条件condition为(name_in(master_field) is not null)

附源码

  PROCEDURE clear_dependent_fields(master_field VARCHAR2,
                                   field1       VARCHAR2,
                                   field2       VARCHAR2 DEFAULT NULL,
                                   field3       VARCHAR2 DEFAULT NULL,
                                   field4       VARCHAR2 DEFAULT NULL,
                                   field5       VARCHAR2 DEFAULT NULL,
                                   field6       VARCHAR2 DEFAULT NULL,
                                   field7       VARCHAR2 DEFAULT NULL,
                                   field8       VARCHAR2 DEFAULT NULL,
                                   field9       VARCHAR2 DEFAULT NULL,
                                   field10      VARCHAR2 DEFAULT NULL) IS
  BEGIN
    COPY('Entering app_field.clear_dependent_fields.','global.frd_debug');
    if (name_in(master_field) is null) then
      clear_fields(field1, field2, field3, field4, field5,
                   field6, field7, field8, field9, field10);
    end if;
    COPY('Completed app_field.clear_dependent_fields.','global.frd_debug');
  END clear_dependent_fields;

  PROCEDURE set_dependent_field(event           VARCHAR2,
                                master_field    VARCHAR2,
                                dependent_field VARCHAR2,
        invalidate  BOOLEAN DEFAULT FALSE) IS
  BEGIN
    COPY('Entering app_field.set_dependent_field.  Event is '||event||'.','global.frd_debug');
    set_dependent_field(event,
                        (name_in(master_field) is not null),
                        dependent_field,
      invalidate);
    COPY('Completed app_field.set_dependent_field.  Event is '||event||'.','global.frd_debug');
  END set_dependent_field;

  PROCEDURE set_dependent_field(event           VARCHAR2,
                                condition       BOOLEAN,
                                dependent_field VARCHAR2,
        invalidate  BOOLEAN DEFAULT FALSE) IS
    value    NUMBER;
    itemtype VARCHAR2(32);
  BEGIN
    COPY('Entering app_field.set_dependent_field.  Event is '||event||'.','global.frd_debug');
    if (condition) then
      value := PROPERTY_ON;
    else
      value := PROPERTY_OFF;
    end if;

    if ((instr(event, 'VALIDATE') <> 0) or (event = 'INIT')) then
      app_item_property.set_property(dependent_field, ENTERABLE, value);
      itemtype := get_item_property(dependent_field, item_type);
      if invalidate then
        set_item_property(dependent_field, ITEM_IS_VALID, PROPERTY_FALSE);
      elsif not(itemtype = 'CHECKBOX' or
               (itemtype = 'LIST' and
                get_item_property(dependent_field, required) = 'TRUE')) then
        if (name_in(dependent_field) is not null) then
          copy('', dependent_field);
        end if;
      end if;

    elsif (event in ('PRE-RECORD', 'WHEN-NEW-RECORD-INSTANCE')) then
      app_item_property.set_property(dependent_field, ENTERABLE, value);

    elsif (event = 'POST-QUERY') then
      --
      -- In R11 this set the visual attribute. Now we get the coloring
      -- by setting the enterable property
      --
      app_item_property.set_property(dependent_field, ENTERABLE, value);
    else
      fnd_message.debug('DEVELOPER ERROR: Invalid arg '||
        event||' to set_dependent field');
    end if;
    COPY('Completed app_field.set_dependent_field.  Event is '||event||'.','global.frd_debug');
  EXCEPTION
    when OTHERS then
      app_debug.setpoint('app_field.set_dependent_field',
                         event||', '||dependent_field);
      RAISE;
  END set_dependent_field;

标签:set,dependent,DEFAULT,field,VARCHAR2,NULL
From: https://www.cnblogs.com/dengxing/p/17168109.html

相关文章

  • Qt ComBox setModel 后无法清空
    问题阐述:在对combox进行了分配模型后setModel,想要清除combox内容,发现使用clear()没有起到作用。代码如下:1QSqlQueryModel*model=newQSqlQueryMode(this);2mode......
  • 使用set去重
    #include<iostream>#include<vector>#include<set>usingnamespacestd;intmain(){vector<int>test={1,2,3,3,3,4,2,3,5,2,63,56,34,24};set<int>s(tes......
  • C++里的memset
    memset函数是内存赋值函数,用来给某一块内存空间进行赋值的;包含在<string.h>头文件中,可以用它对一片内存空间逐字节进行初始化;原型为:void*memset(void*s,intv,......
  • C# 获取 appSettings 公共类
    publicstaticclassPublicAppSettings{///<summary>///修改AppSettings中配置///</summary>///<paramname="key"......
  • Vue项目中通过 avatarUrl: require('@/assets/user-avatar.png')出现required is not
    参考:https://blog.csdn.net/qq_37130872/article/details/128133646useImages.js//获取assets静态图片exportconstgetAssetsImge=(name)=>{returnne......
  • DataTransfer.setDragImage()自定义拖拽图像遇到的坑
    发生拖动时,从拖动目标(dragstart事件触发的元素)生成半透明图像,并在拖动过程中跟随鼠标指针。这个图片是自动创建的,你不需要自己去创建它。然而,如果想要设置为自定义图像,那......
  • setImmediate All In One
    setImmediateAllInOneWindow.setImmediate()setImmediate(func)setImmediate(func,param0)setImmediate(func,param0,param1)setImmediate(func,param0,param......
  • validateField的使用
    validateField有些时候我们只需要验证表单中的部分字段,其他字段不需要,这时候我们就需要用validateField函数了,注意,这里有几个坑大家别踩了首先,我们得知道,使用validateF......
  • Codeforces Beta Round #19 D. Points 线段树+set
    给你一个笛卡尔坐标系,现在要支持三种操作,第一种操作是添加一个点(x,y),第二种操作是删除一个点(x,y),第三种操作是查询严格在点(x,y)右上角的点中,横坐标最小的点,如果有多......
  • 2023-02-13 Set `"volar.inlayHints.eventArgumentInInlineHandlers": false` to hide
    Set`"volar.inlayHints.eventArgumentInInlineHandlers":false`tohideEventArgumentinInlineHandlers.设置`“volar.inlayHints.eventArgumentInInlineHandlers......