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 ...
随机推荐
- 在大数据中,关于native包的编译步骤
一.问题的由来: 二.解决问题的方法(所有的操作在root下完成): 1.前期需要的环境,下面的已经在伪分布式中配置好,不再重复 配置好jdk 配置好hadoop 2.上传还需要包 apache-ma ...
- 理解tornado
计算密集型:多进程 IO密集型:多线程 能产生IO阻塞的情况很多,比如网络通讯.磁盘读写.当发生阻塞时,CPU是闲置的,此时如果就一个线程就没法处理其他事情了. 所以对于含有IO阻塞的环境,多线程 ...
- Java HashMap、LinkedHashMap
如果需要使用的Map中的key无序,选择HashMap:如果要求key有序,则选择TreeMap. 但是选择TreeMap就会有性能问题,因为TreeMap的get操作的时间复杂度是O(log(n)) ...
- php--在apache上配制rewrite重写
配置步骤: 第一步:找到apache的配置文件httpd.conf(文件在conf目录下) 第二步:你首先必须得让服务器支持mod_rewrite,如果你使用的是虚拟主机,请事先询问你的主机提供商. ...
- NodeJS模块的使用
在NodeJS中,每个js文件就是一个模块,而文件路径就是模块名, 在编写每个模块时,都有require.exports.module三个预先定义好的变量可供使用. require函数用于在当前模块中 ...
- jQuery 复选框全选反选
<script type="text/javascript"> $(function(){ //全选 $("#CheckedAll").click( ...
- Shell Script-读取配置文件
需求 有时候在shell script里面需要一些执行,如果放在程序里面不便于统一管理,并且每一次修改路径都要去script里面改好麻烦,所以统一把路径放在配置文件中方便管理. 问题 如何读取相对应的 ...
- c#中的linq一
c#中的linq 测试数据: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...
- Interview How to Count Squares
火柴拼出多少个正方形 http://matchstickpuzzles.blogspot.com/2011/06/55-4x4-square-how-many-squares.html 输入是两个二维 ...
- select下拉框美化
其实用下列CSS就可以解决,原理是将浏览器默认的下拉框样式清除,然后应用上自己的,再附一张向右对齐小箭头的图片即可. select { /*Chrome和Firefox里面的边框是不一样的,所以复 ...