[转]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_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的用法的更多相关文章
- app_field.clear_dependent_fields
可以调用APP_FIELD.clear_dependent_fields和APP_FIELD.set_dependent_field来将两个(或多个)Item建立关联,当一个为空时,另一个不可录入,反 ...
- Oracle EBS Form Builder使用Java beans创建窗体
最近有个项目,需要研究一下Oracle的E-Business Sutie(EBS),对于以前没接触此套件的我来说,简直太痛苦了.在网上找了一堆资料,试着进行Form二次开发,也遇到各类奇葩问题.目前遇 ...
- 使用Form Builder创建Form具体步骤
使用Oracle Form Builder创建Form具体步骤 (Data Source为Table) 说明:当Block使用的Data Source为Table时,Form会自动Insert,Upd ...
- [Form Builder]Oracle Form系统变量中文版总结大全
转:http://yedward.net/?id=57 Form中的系统变量,它存在于一个Form的整个运行时期的会话之中,变量包含了有关Form相关属性的字节信息.有些变量标明了当前状态,还有些变量 ...
- [Form Builder]NAME_IN()与COPY()
NAME_IN和COPY实际是间接引用,类似指针传递,而不是值传递... IF :VAR1 IS NULL ... direct referenceIF NAME_IN ( :VAR1 ) IS N ...
- [Form builder]:about SYSTEM.MESSAGE_LEVEL
If you want to suppress error messages then you have to set a system variable :system.message_level. ...
- WordPress Plugin Contact Form Builder [CSRF → LFI]
# Exploit Title: Contact Form Builder [CSRF → LFI]# Date: 2019-03-17# Exploit Author: Panagiotis Vag ...
- Oracle Form Builder
Oracle Form Builder 是Oracle的一个开发工具,可以针对Oracle公司的E-Business Suit的ERP系统开发的.对应的还有reports builder. Oracl ...
- 表单生成器(Form Builder)之伪造表单数据番外篇——随机车辆牌照
前几天记录了一下表单生成器(Form Builder)之表单数据存储结构mongodb篇,之后便想着伪造一些数据.为什么要伪造数据呢?说来惭愧,因为拖拉拽设计表单以及表单对应的列表的PC端和移动端该显 ...
随机推荐
- Android开发UI之动画侦听
动画侦听使用了AnimationListener接口,需要实现三个方法onAnimationStart().onAnimationRepeat().onAnimationEnd() 代码: 实现But ...
- BS软件注册
关于BS软件注册问题,目前的方式有通过加密狗访问的方式比较安全,本人为了节省使用成本,采用注册码的形式对每个客户端采用注册码的形式进行认证,防止用户使用同一账号在不同地方登陆使用,也可以防止一个账号, ...
- BIOS与UEFI、MBR和GPT介绍
操作步骤: UEFI是取代传统BIOS的,全称“统一的可扩展固件接口”.MBR则是传统的分区表类型,最大的缺点则是不支持容量大于2T的硬盘.GPT则弥补了MBR这个缺点,最大支持18EB的硬盘,是基于 ...
- UIScrollView,UIView转换UIImage代码(整个view截图, 不只是可视区域)
-(UIImage*)captureView:(UIView *)theView{ CGRect rect = theView.frame; if ([theView isKindOf ...
- C#初始化数组的三种方式
C#声明数组并初始化,有三种方式. 对于一维数组: using System;using System.Data;using System.Configuration;using System.Web ...
- MVC3中Action返回类型ActionResult类型
MVC3中Action返回类型ActionResult在System.Web.Mvc命名空间中.这些包含在控制器中的方法,我们称为控制器中的 Action,比如:HomeController 中的 I ...
- C# 操作 Word 修改word的高级属性中的自定义属性
为 Microsoft Word 创建自动化客户端 启动 Visual Studio .NET. 在文件菜单上,单击新建,然后单击项目.从 Visual C# 项目类型中选择 Windows 应用程序 ...
- ifconfig命令
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...
- HDU 1166 敌兵布阵 线段树区间求和 更改
水 #include<iostream> #include<string> #include<algorithm> #include<cstdlib> ...
- Esper系列(五)Order by、Limit、构建事件流、Updating an Insert Stream
Order by 与SQL语法类似类似,默认为升序排列; 注意: 如果order by的子句中出现了聚合函数,那么该聚合函数必须出现在select的子句中. 出现在select中的expression ...