app_field.clear_dependent_fields
可以调用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(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;
app_field.clear_dependent_fields的更多相关文章
- [转]Form Builder:app_field.clear_dependent_fields和APP_FIELD.set_dependent_field的用法
转自:http://www.cnblogs.com/toowang/p/3668070.html 可以调用APP_FIELD.clear_dependent_fields和APP_FIELD.set_ ...
- Form开发:字段关系-消息-快速编码-参数和系统变量
1.字段关系 清除依赖字段:在挂LOV的名称字段的WHEN-VALIDATE-ITEM调用:app_field.clear_dependent_fields 设置字段依赖:在主字段的WHEN ...
- APPCORE Routine APIs
Introduction to APPCORE Routine APIs This chapter provides you with specifications for calling many ...
随机推荐
- SqlServer2008R2 如何插入多条数据
列id 为自增列 insert into Websites2values('Google','https://www.google.cm/','USA',1),('淘宝','https://www.t ...
- c#上传文件(一)使用 .net 控件上传文件
1.html代码: <body> <form id="form1" runat="server"> <div> <as ...
- js跳转方法
很有用的东西,参考自http://www.zhuoda.org/lunzi/66097.html 第一种 <script language="javascript" type ...
- busybox sz rz命令
之前板子和电脑之间传送文件的时候都是通过tftp网络下载.所以找了一下在文件系统中使用串口上传文件的方法. rz和sz命令使用zmoderm协议,SecureCRT也用提供这个命令的支持.由于是串口, ...
- android 打开软件出现红框
android打开软件的时候会出现红框,剑锋之前解了这个问题.fork过来,方便以后查看. 参考链接: http://www.cnblogs.com/zengjfgit/p/5377744.html ...
- mysql日期加减
mysql日期加减一.MySQL 为日期增加一个时间间隔:date_add().1. 示例:set @dt = now();select date_add(@dt, interval 1 day); ...
- BIND_MISMATCH导致过多VERSION COUNT的问题
并不是用了绑定变量就一定都会游标共享,下面我们介绍的就是一种例子.BIND_MISMATCH导致VERSION COUNT过多的原因解释: This is due to the bind buffer ...
- Mysqldump 参数详解(全)
Mysqldump 参数详解(全) http://www.open-open.com/lib/view/open1358172843762.html mysqldump -S /tmp/mysql33 ...
- 执行shell脚本的几种方法及区别
执行shell脚本的几种方法及区别 http://blog.csdn.net/lanxinju/article/details/6032368 (认真看) 注意:如果涉及到脚本之间的调用一定要用 . ...
- javaScript函数与闭包
js中函数也是对象,具有一切对象的特征,可以作为表达式给变量赋值,可以作为函数的形参,或者函数的返回值,函数内可以嵌套函数等等,函数内以声明方式定义的函数是局部函数,用表达式声明的函数则由赋值变量的性 ...