转自:http://www.cnblogs.com/toowang/p/3668070.html

可以调用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原码:
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();
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') <> ) 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;

[转]Form Builder:app_field.clear_dependent_fields和APP_FIELD.set_dependent_field的用法的更多相关文章

  1. app_field.clear_dependent_fields

    可以调用APP_FIELD.clear_dependent_fields和APP_FIELD.set_dependent_field来将两个(或多个)Item建立关联,当一个为空时,另一个不可录入,反 ...

  2. Oracle EBS Form Builder使用Java beans创建窗体

    最近有个项目,需要研究一下Oracle的E-Business Sutie(EBS),对于以前没接触此套件的我来说,简直太痛苦了.在网上找了一堆资料,试着进行Form二次开发,也遇到各类奇葩问题.目前遇 ...

  3. 使用Form Builder创建Form具体步骤

    使用Oracle Form Builder创建Form具体步骤 (Data Source为Table) 说明:当Block使用的Data Source为Table时,Form会自动Insert,Upd ...

  4. [Form Builder]Oracle Form系统变量中文版总结大全

    转:http://yedward.net/?id=57 Form中的系统变量,它存在于一个Form的整个运行时期的会话之中,变量包含了有关Form相关属性的字节信息.有些变量标明了当前状态,还有些变量 ...

  5. [Form Builder]NAME_IN()与COPY()

    NAME_IN和COPY实际是间接引用,类似指针传递,而不是值传递... IF :VAR1 IS NULL ...  direct referenceIF NAME_IN ( :VAR1 ) IS N ...

  6. [Form builder]:about SYSTEM.MESSAGE_LEVEL

    If you want to suppress error messages then you have to set a system variable :system.message_level. ...

  7. WordPress Plugin Contact Form Builder [CSRF → LFI]

    # Exploit Title: Contact Form Builder [CSRF → LFI]# Date: 2019-03-17# Exploit Author: Panagiotis Vag ...

  8. Oracle Form Builder

    Oracle Form Builder 是Oracle的一个开发工具,可以针对Oracle公司的E-Business Suit的ERP系统开发的.对应的还有reports builder. Oracl ...

  9. 表单生成器(Form Builder)之伪造表单数据番外篇——随机车辆牌照

    前几天记录了一下表单生成器(Form Builder)之表单数据存储结构mongodb篇,之后便想着伪造一些数据.为什么要伪造数据呢?说来惭愧,因为拖拉拽设计表单以及表单对应的列表的PC端和移动端该显 ...

随机推荐

  1. WCF - Architecture

    WCF - Architecture WCF has a layered architecture that offers ample support for developing various d ...

  2. bzoj3503

    显然知道第一行就可以只道整个矩阵但n<=40,搜索是不行的,我们设第一行为x1~xm可以由轻易由第一行未知数推出第n+1行,这一步我们可以压成二进制位(因为只和奇偶有关)显然n+1行必须是0,由 ...

  3. apache开源项目--hadoop

    Hadoop 是一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力高速运算和存储.Hadoop实现了一个分布式文件系统(Had ...

  4. jquery插件cloud-zoom(放大镜)

    效果预览:http://www.helloweba.com/demo/cloud-zoom/ 源代码下载:http://pan.baidu.com/s/1eQnadXo Cloud Zoom是一个图像 ...

  5. javascript 中concat与push的区别

    1. push 遇到数组参数时,把整个数组参数作为一个元素:而 concat 则是拆开数组参数,一个元素一个元素地加进去. 2. push 直接改变当前数组:concat 不改变当前数组. 总结:如果 ...

  6. jQuery里面的datepicker日期控件默认是显示英文的,如何显示中文或其他语言呢?

    jQuery里面的datepicker日期控件默认是显示英文的,如何让他显示中文或其他呢? [官方的写法]: (1)引入JS文件: <script type="text/javascr ...

  7. INTERRUPT CONTROLLER

    1,中断的基本概念 CPU与外设之间传输数据的控制方式通常有3种:查询方式,中断方式和DMA方式.查询方式的优点是硬件开销小不需要额外的硬件支持只是通过软件不断的轮询,使用起来也就比较简单,但在此方式 ...

  8. Linux上构建一个RADIUS服务器详解

    作为一名网络管理员,您需要为您所需管理的每个网络设备存放用于管理的用户信息.但是网络设备通常只支持有限的用户管理功能.学习如何使用Linux上的一个外部RADIUS服务器来验证用户,具体来说是通过一个 ...

  9. ashx文件结合ajax使用(返回json数据)

    ashx文件返回json数据: public void ProcessRequest(HttpContext context) { context.Response.ContentType = &qu ...

  10. codeforces 652E Pursuit For Artifacts 边双连通分量

    题意:n个点,m条边的无向图,有的边上有标记,每条边只能走一次 给你一个起点,一个终点,询问是否能找到从起点到终点的路径,这条路径至少包含一条含有标记的边 分析:然后边双缩点 下面介绍一下边双的性质 ...