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 ...
随机推荐
- leetcode:Factorial Trailing Zeroes
Given an integer n, return the number of trailing zeroes in n!. 最初的代码 class Solution { public: int t ...
- urlencode和rawurlencode的区别
摘自http://blog.csdn.net/doggie1024/article/details/5698615 urlencode:返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将 ...
- 【转】Android中Application类用法
转自:http://www.cnblogs.com/renqingping/archive/2012/10/24/Application.html Application类 Application和A ...
- C++经典编程题#6:分配病房
总时间限制: 1000ms 内存限制: 65536kB 描述 某个科室的病房分为重症和普通,只有当病人的疾病严重程度超过了入住重症病房的最低严重值,才可以安排入住重症病房. 现在要求设计一个程序, ...
- HBASE架构解析(一)
http://www.blogjava.net/DLevin/archive/2015/08/22/426877.html 前记 公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官 ...
- CAS实现无锁模式
用多线程实现一个数字的自增长到1000000,分别用无锁模式和锁模式来实现代码. 1.使用ReentrantLock. package test; import java.util.concurren ...
- background-size的cover和content的用法
background-size:cover; 表示背景图拉伸布满,如果在手机上做的话,背景图片会拉大,失真.这样做不妥 background-size:content; 表示背景图片在内容区域正常显示 ...
- Apache配置文件httpd.conf内容翻译
本文已经废弃,现在apache2不依靠httpd.conf来配置. Ubuntu下默认的配置文件是/etc/apache2/sites-available/default 可以修改上面文件来修改a ...
- [BS-24] UIImageView的contentMode属性
UIImageView的contentMode属性 所有的UIView都有个contentMode属性,UIImageView继承自UIView,我们在使用UIImageView时,经常要考虑这些 ...
- shell中&&和||的使用方法_转
shell中&&和||的使用方法 &&运算符: command1 && command2 &&左边的命令(命令1)返回真(即返 ...