ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ebs 二次开发 触发器

2021-03-03 11:00:36  阅读:231  来源: 互联网

标签:触发器 form default APP Oracle DATE varchar2 ebs 二次开发


经常需要修改的触发器:

ACCEPT

APP_STANDARD.EVENT(‘ACCEPT’);

这个触发器处理菜单或工具条上调用Save and Proceed (保存并继续)动作。它执行保存,并移动到指定当作第一个导航块的块上。

替换这个触发器中的代码,或创建块级触发器并把执行类型指定为‘Override’.

FOLDER_RETURN_ACTION

Null;

这个触发器允许指定客户华的文件夹事件

用需要的处理文件夹动作的代码替换。

KEY_DUPREC

APP_STANDARD.EVENT(‘KEY-DUPREC’);

这个触发器禁用了Oracle 表单默认的重复记录的功能。

KEY-CLRFRM

APP_STANDARD.EVENT(‘KEY-CLRFRM’);

这个触发器在试图清空form前验证记录

在原来的代码后添加附加的代码,通常你你应添加GO_BLOCK如果form中存在多个的区域,使用GO_BLOCK在调用清空from操作后重新填充控制菜单

KEY_MENU

APP_STANDARD.EVENT(‘KEY-MENU’);

这个触发器禁用了Oracle froms的Block Menu 命令

为了启用从特定的块对替代的块通过键盘操作,那么编写块级KEY_MENU并且设定执行类型为’Override ’这个触发器会打开一个与弹出式菜单相同的LOV

KEY_LISTVAL

APP_STANDARD.EVENT(‘KEY-LISTVAL’);

这个触发器执行弹性域操作或引用LOV

创建块或项级触发器并设置执行类型为‘Override’,可以使用日历或动态执行弹性域

ON-ERROR

APP_STANDARD.EVENT(‘ON-ERROR’);

这个触发器处理服务器或客户端的所有的错误,使用消息字典调用。

为了捕获处理指定的错误,在调用APP_STANDARD前检查指定的错误

declare

original_mess varchar2(80);

begin

IF MESSAGE_CODE = <your message number> THEN

original_mess := MESSAGE_TYPE||’–’||

to_char(MESSAGE_CODE)||’: ’||MESSAGE_TEXT;

––– your code handling the error goes here

message(original_mess);

ELSE

APP_STANDARD.EVENT(’ON_ERROR’);

END IF

end;

POST-FORM

APP_STANDARD.EVENT(‘POST-FORM’);

这个触发器是预留为以后使用

添加附加的代码在原有代码之后。

PRE-FORM

FND_STANDARD.FORM_INFO(’$Revision: <Number>$’,

’<Form Name>’,

’<Application Shortname>’,

’$Date: <YY/MM/DD HH24:MI:SS> $’,

’$Author: <developer name> $’);

APP_STANDARD.EVENT(’PRE–FORM’);

APP_WINDOW.SET_WINDOW_POSITION(’BLOCKNAME’,

’FIRST_WINDOW’);

这个触发器初始化Oracle 应用的内部值和菜单。在这里输入的值将在Oracle应用程序菜单‘Help About Oracle Applications’中看到。

你必须编辑应用程序的简称,应用的简称控制当用户选择‘help’按钮后哪个应用的在线帮助文档将被调用。如果你将应用的简称设置为FND,你的用户将会看不到任何帮助因为Oracle应用程序将不能建立可用的帮助目标。

Form的名称是用户form名称(form标题)。

Oracle公司使用源控制系统,它可以自动更新以“$”开头的值,如果你不使用这个源控制系统你可以按你的开发信息编辑这些值。

你必须编辑APP_WINDOW中的BLOCKNAME为你自己的block.不要编辑FIRST_WINDOW

QUERY_FIND

APP_STANDARD.EVENT(‘QUERY_FIND’);

这个触发器将设置显示字符串’Query Find is not available ’

在这个触发器中替代代码,当你创建窗口或Row_LOV在你的form中时创建块级触发器并设置执行类型为‘Override’

WHEN-NEW-FORM-INSTANCE

FDRCSID(’$Header: ... $’);

APP_STANDARD.EVENT(’WHEN–NEW–FORM–INSTANCE’);

–– app_folder.define_folder_block(’template test’,

’folder_block’, ’prompt_block’, ’stacked_canvas’,

’window’, ’disabled functions’);

--app_folder.event(’VERIFY’);

调用 APP_STANDARD.EVENT 是为了在query-only模式下调用FND_FUNCTION.EXECUTE,调用FNDRCSID是为了Oracle 应用程序的源控制系统(source control system).APP_FOLDER 只为了Oracle应用程序内部调用。客户化form不需要FDRCSID或APP_FOLDER调用,但是如果将它们留在触发器中也没有影响。

在现有的代码前添加附加代码。

WHEN-NEW-RECORD-INSTANCE

APP_STANDARD.EVENT(‘WHEN-NEW-RECORD-INSTANCE’);

这个触发器管理Oracle应用程序菜单和工具栏

创建块级触发器并设置执行类型为‘Before’.

WHEN-NEW-ITEM-INSTANCE

APP_STANDARD.EVENT(‘WHEN-NEW-ITEM-INSTANCE’);

这个触发器管理Oracle应用程序的菜单和工具栏

如果你添加弹性域方法调用,你应该添加它在APP_STANDARD.EVENT 调用前调用,通常,你不应该添加任何代码在这个触发器中,这样的代码将会影响你表单的速度并且影响每一个项

不能修改的触发器

Oracle应用程序不支持修改form级的触发器

CLOSE_THIS_WINDOW

从菜单Action->Close 调用触发器APP_CUSTOM.CLOSE_WINDOW 。

CLOSE_WINDOW

APP_CUSTOM.CLOSE_WINDOW(:SYSTEM.EVENT_WINDOW);

这个出发其处理所有关闭窗口的事件。编写处理关闭窗口的事件必须写在APP_CUSTOM.CLOSE_WINDOW包中

EXPORT

App_standard.event(‘EXPORT’);

这个触发器是“Action,Export”菜单中的选择。

FOLDER_ACTION

App_folder.event(:global.folder_action);

KEY-COMMIT

App_standard.event(‘KEY-COMMIT’);

这个触发器处理正常的提交或form调用

KEY-EDIT

App_standard.event(‘KEY-EDIT’);

这个触发器处理弹性域或日历,编辑器操作。

KEY-EXIT

App_standard.event(‘KEY-EXIT’);

这个触发器处理关闭事件和退出enter-query状态

KEY-HELP

App_standard.event(‘KEY-HELP’);

这个触发器调用窗口的帮助系统。

LASTRECORD

APP_STANDARD.EVENT(‘LASTRECORD’);

这个触发器处理菜单(Go ->LAST RECORD)事件

MENU_TO_APPCORE

App_standard.event(:global.menu_to_appcore);

这个触发器支持Special菜单

STANDARD_ATTACHMENTS

Atchmt_api.invoke;

这个触发器处理附件菜单或工具按钮的调用

WHEN-WINDOW-CLOSE

Execute_trigger(‘CLOSE_WINDOW’);

这个触发器集中了form的关闭事件

WHEN-FORM-NAVIGATE

你不能修改这个触发器,它包含了标准的行为,当最小化的表单被导航到的时候正常化这个表单。

ZOOM

Appcore_custom.event(‘ZOOM’);

这个触发器处理菜单或工具条按钮’Action,Zoom ’事件。

第25章 附件

定义:

这里有必要定义一些特别的术语,这些属于将在下边用到。

文件:

文件是任何一个可以给另一个对象或动作提供信息的对象。例如包括了图像,文字处理文件,广义表,或文本。

实体:

一个实体是一个包含Oracle应用程序数据的对象,例如一个项,一个order 或一个order line . 在用户关联附件到一个实体前,必须先启用这个实体。

在附件中,一个实体可以被当作一个基本实体,或一个相关的尸体,基本实体是一个块的主实体,相关的实体通常通过外键关系关联到一个块。

附件:

一个关联到实体的文件被称作一个附件

附件方法:

在你的应用中的一个form 或 form 方法无法使用附件。你必须安装附件到你的form 或方法中,这就是说,你必须在附件方法窗口中定义一个‘附件方法’。

文件分类:

一个文件分类是一个被应用到单独的附件或文件的标签。文件类型通过特殊的form或form方法约束文件可浏览或可添加提供安全性。

当你安装附件时,你分配文件类型到特殊的forms或form functions.当一个用户定义一个文件,用户分配一个类型到文件。附件form是仅查询这些分配到一个类型的文件

附件是怎样运行的:

在幕后:

关联实体和文件的信息是存储在Oracle 应用对象库的表中:FND_ATTACHED_DOCUMENTS。

安装附件功能到你的form

你可以安装附件到任何form 中,你可以附加文件,图像,文本,文件URL,文件或其它信息

为了安装附件功能到你的form

前提:

为你的应用程序的附件做计划。

使用Document Entities窗口 定义你的文件实体

使用Document Categroies窗口 定义你的文件类型

使用Attachment Functions窗口定义附件功能

文件实体窗口

使用这个窗口注册附件实体,一个表可以包含多个实体,尽管附件可能在多个地方被使用到但是这个实体只需要被注册一次,

文件实体块

:输入包含实体的主要的表的名字。

实体ID:输入唯一标志内部实体的名字。通常这个名称和表的名字是相同的。如果在表中有一个以上的实体,就在表名后添加唯一的信息,如在表DEM_PRODUCTS后添加COMPUTER唯一标识,DEM_PRODUCTS_COMPUTER。

实体名称:当form显示附件列表给一个实体时实体名称用户可以看到。输入一个有意义的实体名称

提示: 用户实体提示。

应用:拥有实体的应用(或拥有实体表的应用)

需要注意的是,如果你在Oracle硬哟娜个程序的表或form上定义客户化的附件功能。你应该定义你的客户化实体命名为客户化的应用名称来代替Oracle应用程序产品名称。这帮助你维护你升级后的客户化实体。

文件类型窗口

文件类型通过约束文件提供安全性。它可在指定的form或form方法中可视或添加。

当用户定义一个文件,用户分贝一个类型给这个文件,附件窗口仅能查询那些与form或form方法相关的类别所分配的附件。

Oracle应用程序提供“杂项”的类别,你可以分配到你的附件功能,如果你使用这个类别,你可以不需要定义任何新的类型.

文件类型块

类型: 输入一个用户友好的名称,用户将在附件窗口中看到这个名字。

默认类型:默认类型是当用户创建一个新的文件时的默认数据类型。用户可以覆盖这个默认数据类型。包含 段文本(VARCHAR2(2000)),长文本(LONG),网页(网页是以附加URL的格式)文件(文件是外部文件如Microsoft Word文件,Microsoft Excel文件,图像文件或其他类型的文件当文件类型的附件被加载,他们被上传到数据库中,当文件类型的附件被选择,附件窗口将显示一个“Open Domcument”按钮,它调用Web浏览器并把文件传送给浏览器,Web浏览器处理文件的输出)

文件引用:使用文档引用来指出文件管理系统维护的文件。

生效日期:类型生效的日期。

类型分配窗口

使用类型分配窗口来查看目前使用你的分类的附件功能或分配一个或多个已存在的附件功能到你的分类中。

类型:

选择FORM或FUNCTION

名称:

输入需要使用你的分类的form功能的名称(已启用附件)
启用:

如果分类对于这个form h或功能启用则勾选。

附件功能窗口

使用附件功能窗口来建立你的附件功能到你的form或form 功能。

附件功能块

类型:选择FORM或功能或报表,这个功能类型决定值列表的值

名称: 通过列表值选择你想建立附件的form 或form funct,或报表

用户名称:用户友好的form function 或报表名称

会话上下文字段:

可选的输入字段或参数的名称,这些字段或参数名称将获取会话的上下文通常会话上下文保留组织名称或账簿名称。你必须输入Oracle Forms内部字段名称,而不是现实的提示,使用格式block.field 你必须包含块名称

启用

如果附件功能被启用则勾选。

类别窗口

使用这个窗口浏览或分配文件类型到你的附件功能。

类型:

输入你想分配到这个功能的类型,你必须分配至少一个类别到你的附件功能。Oracle应用程序提供“杂项”分类你可以分配到你的附件功能中。

启用:

如果分类要启用勾选这个复选框

块说明窗口

块的说明是必须的它决定附件工具栏的图标是否可用。此外,许多与块有关的属性影响附件form的外观和作用

如果你使用这个form为reports 建立附件分类你不需要使用块或实体窗口

块名:Oracle Forms 块名。输入您需要附件功能的唯一的块

方法:选择“Allow Change”或“Query Only”,“Allow Change”意味着当附件窗口被块调用时,用户可以插入,更新或删除附件,“Query Only”意味着用户只能查看,但不能修改,删除或创建附件。如果你选择“Query Only”它会被应用于块中的所有附件的所有实体。如果你选择“Allow Change”,你可以选择性的给指定的实体指定的特别约束权限。

安全等级

选择组织,帐套,营业单元或无,取决于form和它的数据是如何保证的。金融的应用通常由帐套保证 。加工应用通常由组织保证,人力资源应用通常由营业单元ID保证。

当一个文件被定义时,它的安全机制同样被定义,例如你可以指定一个文件由组织来保证,并且属于ABC组织,附件系统将只在ABC组织调用form时显示。

为了在跨安全级别来方便的共享文件,一个文件的安全级别可以定义为‘None’或定义为’Shared’。

● 组织

如果附件由组织所保证,输入存储你组织ID的上下文名字使用格式block.field(例如,ITEMS.Organization_id)你必须包含块名

● 账套

如果附件的安全级别为帐套,输入存储你帐套ID的上下文的名称,使用格式block.field (例如,JOURNAL_ENTITIES.SET_OF_BOOKS_ID).必须包含块名。

● 营业单元

如果你的附件安全级别定义为营业单位,输入保存你营业单元的ID,使用格式block.field

上下文1-3

你可以建立你的附件功能,附件窗口显示的标题有超过3个值,这些值可以帮助用户指定用户添加文件的记录。你可以指定附件可以使用这些值的三个区域名字。

输入包含附件form标题的信息的字段名称。使用格式block.field你必须包含block 名称。

实体说明窗口

使用实体说明窗口列出你的块的实体和提供每个实体的信息。你必须完成块说明中每个块中的实体说明。如果你有在多个块中使用的实体,你必须完成为每个块完成实体说明并提供实体所有的信息。

实体:输入实体名称

显示方法:附件窗口含有两个显示附件的模式,这个模式与“Include Related Documents”复选框相互切换。唯一的区别是当用户进入窗口时附件将被查询。如果“Include Related Documents”复选框没有选中,窗口只有当附件直接关联到当前记录时才被显示。

主要实体:不管“Include Related Document”复选框是否选中,你都希望能立即见到附件窗口则指定某个实体为“Main Window”。通常你应将基本实体(或允许插入新的附件的实体块)该指定“Main Window”

包含使附件工具图标可选的实体应该设置显示模式为“Main Window”用户应该从来不会遇到图标指示附件存在,但是按下图标后却没有查询到附件。

相关实体: 如果实体附件设置显示模式为“Related Window”它将与设置为“Main Window并且”Include Related Document”复选框选中的实体单独显示。

第27章 客户化开发标准

客户化Oracle应用程序概览

一些最常用的个性化类型包括:

改变forms

- 外观

- 验证逻辑

- 动作

改变reports或程序

- 外观

- 逻辑

数据库个性化

- 添加只读模式

- 增强与数据库出发器的逻辑

整合第三方客户软件
- 重新连接程序

定义你的客户化应用

使用应用窗口注册你的客户化应用,给你的客户化应用使用一个直观的应用名称和简称。这个名称最好是Oracle应用程序的扩展 ,如对Oracle General Ledger的扩展应该属于一个客户应用命名为Custom General Ledger加上应用的简称 XXGL

虽然你的简称可以达到50个字符,但是为了简化维护你和调用你的应用程序我们建议你只是用4到6个字符作为应用的简称。

为了减少客户化应用的简称与以后的Oracle应用程序简称相冲突,我们建议你的客户化应用简称以“XX“开始。

定义你的客户化应用的路径结构

使用正确的操作系统命令创建你的应用路径结构,你应该定义一个版本号做为路径的一部分来支持多个版本,使用Oracle应用程序发布的版本号在你的应用路径中,例如,11.5为11i版本。

修改你的应用程序环境文件。

修改你的应用环境文件来定义一个你应用根路径的环境变量添加你的客户化应用根路径环境变量到adovars.env文件,而不是<dbname>.env文件

你必须重新启动Forms Server和你的内部并发管理器,这样Oracle应用程序对象库可以找到应用组件。

添加新的组件

每一次你开发了一个组件,将它放置在正确的客户化应用的子路径下

添加一个FORM

你可以使用Oracle应用对象库和Oracle Forms创建与Oracle应用程序整合的新的forms

你必须以TEMPLAT form开始,遵循Oracle应用form开发规范

如果是对Oracle 应用程序form的修改,你应该先拷贝原始的form并在拷贝上进行修改。

将你完成的form上传到正确的客户化应用路径下,并注册form为Oracle应用对象库,关联到你的客户化应用并为你的from定义一个功能。

在你注册完你的form并定义为一个方法后,你可以添加到相应的菜单中或定义一个新的菜单。

添加一个报表和并发程序

你可以编写Oracle Reports并发程序(包含报表和程序),SQL*Plus , PL/SQL,C,Pro*C和内核脚本。

添加一个新的报表提交form

Oracle应用对象库提供给你标准的请求提交接口,可以运行和监视你的应用程序和报表。你不必再定义和维护一个特别的forms来提交并发请求,使用提交请求

如果你想从客户化FORM中提交报表或程序,你可以使用Oracle应用程序对象库中提供的标准方法来提交一个并发程序给并发管理器。一个客户报表提交form应该包含对每个参数值的验证。

添加在线帮助:

在11i版本,Oracle应用提供HTML格式的在线帮助。你可以简单的扩展Oracle应用在线帮助。

添加菜单:

你可以定义一个新的菜单来调用你的forms或oracle 应用的菜单和forms.我们建议你一直输入你的客户化应用简称作为菜单名称的一部分。

添加职责:

你可以使用职责菜单定义新的职责。

添加消息字典的消息

你可以在消息字典中定义你自己的消息,关联你的消息到你的客户化应用,在升级过程中,所有的关联到Oracle应用程序的客户化消息都会被删除。而关联到客户化应用的消息不会被删除。

第28章 使用CUSTOM库

编写CUSTOM 库

CUSTOM库是一个Oracle Forms Developer PL/SQL 库,它允许你充分使用Oracle Forms Developer直接整合你的代码到Oracle 应用程序而不必改变Oracle Application 的代码。

什么时候使用CUSTOM库

在一些主要的情况下,可以使用CUSTOM 库。

Zoom Zoom 通常会打开另一个form并且可以传递参数到达开的form中。

通用事件的逻辑 在确定的通用form事件中,增强Oracle 应用程序的逻辑例如:

WHEN-NEW-FORM-INSTANCE 或WHEN-VALIDATE-RECORD你可以使用通用事件来改变区域的提示和其他的属性,隐藏区域,添加验证和其它

产品特殊事件的逻辑 在确定的产品特殊事件中增强或替换Oracle 应用程序逻辑实现业务逻辑。

客户定义菜单 在Oracle 应用程序form中添加条目到special菜单中,例如一个打开客户化form的条目。

设置视觉属性 使用CUSTOM库在运行时来改变视觉属性,使用Oracle Forms内建程序 SET_VA_PROPERTY 来设置CUSTOM1 – CUSTOM5的视觉属性,并使用APP_ITEM_PROPERTY2.SET_PROPERTY在运行时来应用视觉属性。

编写Zoom

Zoom允许用户调用在每一个块中调用逻辑,例如,你可能希望在输入采购订单form时打开供应商form,你可以在这一个块上使用Zoom并且当用户调用它,你可以打开供应商form

11i版本Zoom的行为:

Oracle 应用程序提供一个菜单项和工具栏中的一个按钮,用户可以调用Zoom,只有当这个块在CUSTOM库Zoom逻辑定义后,菜单项和按钮才可用。

当光标在form中改变到不同的块中,form调用CUSTOM库中的ZOOM_AVALIABLE 方法。如果这个方法返回TRUE,ZOOM条目和按钮可用,如果返回FALSE不可用。

如果Zoom条目是可用的,这是当用户调用Zoom时调用CUSTOM中的ZOOM方法。你基于当前form和块编写这个事件的方法。

在CUSTOM库中编写Zooms

1. 添加一个CUSTOM.ZOOM_AVALIABLE方法只是form 和块什么时候可以启用Zoom

2. 添加在ZOOM事件中添加CUSTOM.EVENT过程。

支持一个块中的多Zoom时间。

11i版中Oracle应用程序为Zoom提供一个LOV和相应的参数:

u LOV:APPCORE_ZOOM

u 参数:APPCORE_ZOOM_VALUE

使用LOV和参数当这个块含有多余1个的ZOOM时提供给用户一个LOV。

编写ZoomLOV到CUSTOM库中。

在CUSTOM库中(包括Zoom事件代码)

1. 创建一个记录组合,并填充可用的Zoom名字和值

2. 添加记录组到APPCORE_ZOOM LOV中

3. 调用show_lov来显示LOV给用户

4. 如果用户选择一个Zoom,将返回值给APPCORE_ZOOM_VALUE参数

5. 得到参数的值选择不同的Zoom

编写通用Form事件

你可以编写逻辑,在特别的form并在块的特别的事件中触发,你可以编写逻辑在一下的事件中:

? WHEN–FORM–NAVIGATE

? WHEN–NEW–FORM–INSTANCE

? WHEN–NEW–BLOCK–INSTANCE

? WHEN–NEW–RECORD–INSTANCE

? WHEN–NEW–ITEM–INSTANCE

? WHEN–VALIDATE–RECORD

? SPECIALn (n 是1 到 45之间的一个数)

? ZOOM

? EXPORT

? KEY–Fn (n 是1 到 8之间的一个数)

一些Oracle 应用程序forms例如多数的Oracle人力资源模块的form可能提供附加的事件调用CUSTOM库,这些附加事件被列在拥有这个form的产品的文档中。你可以编写逻辑在CUSTOM库中以相同的方法在通用时间中编写逻辑。

在CUSTOM库中为通用的form时间编写逻辑:

1. 在CUSTOM.EVENT过程中为特别的事件添加一个分支。

在分支内部,指定你希望你的逻辑触发的form 和 块并添加逻辑到你希望发生的事件到这些块中。

编写产品指定的事件:

为了编写产品指定的事件逻辑到CUSTOM库中:

1. 为特殊的产品的指定的事件添加分支到CUSTOM.EVENT过程中

在分支中添加逻辑。

2. 如果要支持客户化的执行类型,添加分支到CUSTOM.STYLE方法来指定执行类型。

添加客户化条目到special 菜单中。

为了在CUSTOM 库中添加逻辑到special菜单中的条目

1. 在CUSTOM.EVENT过程中添加分支事件WHEN-NEW-FORM-INSTANCE

在这个分支中指定你希望添加逻辑的form和块,添加逻辑到Special 菜单中

2. 将特别的SPECIALn事件添加分支到CUSTOM.EVENT过程。

在这个分支中,指定逻辑发生的form和块。添加逻辑到你的Special菜单中。如果是你开发的form你应该添加逻辑到用户命名的SPECIALn触发器中。

Oracle应用对象库中产品特别的事件。

Oracle 应用对象库提供可以使用CUSTOM库使用的产品特别事件。

WHEN-LOGON-CHANGED 事件

使用WHEN-LOGON-CHANGED 事件在用户使用”File -> Log On as a Different User”立即触发来验证。这个方法是只是对基于Oracle Forms Developer开发的form有效。而对基于HTML或Java 的from是无用的。

你可以使用FND_PROFILE.GET方法得到新的用户名和其他预置文件值

如果因为一些原因在这个时间中的代码抛出form_trigger_failure 的异常,用户将返登录界面。

WHEN-RSPONSIBILITY-CHANGED 事件

使用WHEN-RESPONSIBILITY-CHANGED事件当用户使用“Fiel->Switch Responsibility”来切换职责时触发进行验证。这个方法只对基于Oracle Forms Developer 开发的forms有效。

你可以通过FND_PROFILE.GET 方法得到新的职责名称和其他预置文件的值。如果因为一些原因在这个事件中的代码抛出 form_trigger_failure的异常,用户将返回如同选择了一个错误的职责的值列表界面。

CUSTOM 包

CUSTOM包包含了下列的方法和过程

CUSTOM.ZOOM_AVALIABLE

CUSTOM.STYLE

CUSTOM.EVENT

CUSTOM.ZOOM_AVAILABLE

function custom.zoom_available return BOOLEAN;

如果对于这个块Zoom是可用的,则返回TRUE,否则返回FALSE,通常用于测试form和块。

通常这个方法返回FALSE

CUSTOM.STYLE

function custom.style(event_name varchar2) return integer;

这个方法允许你决定执行的类型。你可以选择代码的执行为,之前,之后,或替代。注意的是一些产品特定事件是不支持所有的执行类型的CUSTOM.STYLE不对通用form事件或Zoom起作用。

下列的包变量以用作返回值:

Custom.before

Custom.after

Custom.override

Custom.standard

作为默认值,这个方法返回custom.standard

CUSTOM.EVENT

procedure custom.event(event_name varchar2);

这个方法允许你在指定的事件中执行你的代码。通常测试事件名称然或测试form和块。

作为默认这个方法应该返回null;

第29章 APPCORE APIs

APP_COMBO: Combination Block API

使用APP_COMBO 控制组合块的导航

APP_COMBO.KEY_PREV_ITEM

procedure APP_COMBO.KEY_PREV_ITEM;

在KEY-PREV-ITEM触发器中使用这个过程来提供当从记录中的第一个item后退格时的标准动作。这个方法保证光标自动移动到上一个记录的最后一个item

APP_DATE and FND_DATE: Date Conversion APIs

你可以使用APP_DATE和FND_DATE包来格式化,转换或验证日期。这个包设计来隐藏多种与日期有关的复杂的格式掩码。这些方法在你把日期当作字符串操作时非常有用。

APP_DATE 方法在APPCORE库中,并且可以被form和其它库调用,除了附属于APPCORE的库,例如CUSTOM库,在CUSTOM 库或其它附属于APPCORE的库中使用APP_DATE2包来替换,APP_DATE2包与APP_DATE有相同的方法和参数。

FND_DATE包在数据库中,你可以在SQL语句或其他数据库包中调用FND_DATE方法,许多方法都包含在APP_DATE和FND_DATE包中。

Date 术语列表:

表单date区域: 在form中的数据类型为’DATE’的文本项

表单datetime 区域: 在form 中 数据类型为’DATETIEM’的文本项

表单字符区域: 在form 中数据类型为CHAR 的文本项

PL/SQL date: 一个PL/SQL 声明为“DATE”类型的变量。这个变量包含日期和时间。

用户日期格式 这个格式是用户当前在form中看到的日期格式。从环境变量FORMS60_USER_DATE_FORMAT继承

用户datetime 格式: 这个格式是用户当前从form中看到的日期时间型格式,从环境变量FORMS60_USER_DATETIME_FORMAT继承。

标准的时间格式: 一个标准的格式用来表示一个日期为一个字符串,取决于语言。Oracle应用程序使用YYYY/MM/DD HH24:MI:SS作为标准日期格式。

APP_DATE.CANONICAL_TO_DATE 和 FND_DATE.CANONICAL_TO_DATE

function APP_DATE.CANONICAL_TO_DATE(

canonical varchar2)

return date;

这个方法接受一个标准日期格式的日期,并把它转换为一个PL/SQL日期。

如果APP_DATE.CANONICAL_TO_DATE失败,这个方法显示一个消息并抛出form_trigger_failure 如果FND_DATE.CANONICAL_TO_DATE失败,这个方法抛出标准异常但不提示消息。

参数: canonical 一个VARCHAR2字符串(以标准日期格式)将要转换为PL/SQL日期

APP_DATE.DISPLAYDATE_TO_DATE 和 FND_DATE.DISPLAYDATE_TO_DATE

function APP_DATE.DISPLAYDATE_TO_DATE(

chardate varchar2)

return date;

这个方法传递一个用户日期类型字符串并转换为PL/SQL日期。

如果APP_DATE.DISPLAYDATE_TO_DATE失败,这个方法显示一个消息并抛出form_trigger_failure异常。如果FND_DATE.DISPLAYDATE_TO_DATE失败,这个方法产生一个标准异常但不显示消息。

参数: chardate : 以用户格式化的一个VARCHAR2类型的日期,将转换为PL/SQL日期。

APP_DATE.DISPLAYDT_TO_DATE和FND_DATE.DISPLAYDT_TO_DATE

function APP_DATE.DISPLAYDT_TO_DATE(

charDT varchar2)

return date;

这个方法传递一个用户日期时间类型的字符串并转换为PL/SQL日期。其它如上。

APP_DATE.DATE_TO_CANONICAL 和FND_DATE.DATE_TO_CANONICAL

function APP_DATE.DATE_TO_CANONICAL(

dateval date)

return varchar2;

这个方法转换PL/SQL日期为一个以标准日期格式的字符串

APP_DATE.DATE_TO_DISPLAYDATE 和

FND_DATE.DATE_TO_DISPLAYDATE

function APP_DATE.DATE_TO_DISPLAYDATE(

dateval date)

return varchar2;

这个方法转换PL/SQL日期为一个以用户日期格式格式化的字符串。

APP_DATE.DATE_TO_DISPLAYDT 和

FND_DATE.DATE_TO_DISPLAYDT

function APP_DATE.DATE_TO_DISPLAYDT(

dateval date)

return varchar2;

这个方法转换一个PL/SQL日期为一个以用户日期时间格式的字符串。

APP_DATE.DATE_TO_FIELD

procedure APP_DATE.DATE_TO_FIELD(

dateval date,

field varchar2,

datetime varchar2 default ’DEFAULT’,

date_parameter boolean default FALSE);

这个方法拷贝一个PL/SQL日期到一个form 区域,form参数,或全局变量。当日期处理时使用这个方法替代内建程序COPY。

当拷贝一个值到form中并且日期类型是日期或日期时间型,这个过程使用适当的内部掩码维护数据类型。

当拷贝一个值到form中并且数据类型是字符,如果区域长度够大作为默认这个方法使用用户日期类型。否则这个过程应用用户日期类型。

当拷贝一个值到全局变量或form参数中,作为默认这个方法传递CHAR类型数据并以表尊日期类型,忽略时间,

参数:dateval :将要被拷贝的日期

Field : 拷贝日期的区域,包含块名

Datetime 用来覆盖默认规则。默认值为’DEFAULT’,指定’DATE’或’DATETIME’来强制值以日期或日期时间格式来格式化,通常,你应该使用这个参数来强制格式化为时间日期型。

Date_parameter 只有当你拷贝值到一个日期参数时使用这个参数。如果参数设置为TRUE值被拷贝为一个日期型值而不是一个字符型值

APP_DATE.FIELD_TO_DATE

function APP_DATE.FIELD_TO_DATE(

field varchar2 default NULL,

date_parameter boolean default FALSE)

return date;

使用这个方法从form区域,form参数,全局变量拷贝一个值并转换为PL/SQL 日期,当处理数据类型为日期类型时使用这个方法取代内建方法NAME_IN。

当从form区域拷贝一个日期或日期时间类型值,这个方法使用适当的内部掩码维护时间元素。

当从form区域拷贝一个字符类型的值,如果区域长度满足这个方法使用用户日期时间格式,否则使用用户日期格式。

当从全局变量或form参数拷贝一个值,这个方法将数据类型默认为字符类型,并且将它格式化为通用日期类型。是否含有时间元素取决于当前的长度

如果APP_DATE.FIELD_TO_DATE失败,这个方法抛出标准异常但不会返回信息

APP_DATE.VALIDATE_CHARDATE

procedure APP_DATE.VALIDATE_CHARDATE(

field varchar2 default NULL)

这个方通过确定的form区域的字符值的日期格式检查它是否符合一个合法的日期。

如果转换为日期失败,这个方法显示一个信息并抛出form_trigger_failure异常,如果转换成功,这个方法拷贝拷贝后的值到区域。

参数:field 需要验证的区域的名字,包含块名。如果区域名称未传递,则这个方法使用SYSTEM.CURSOR_ITEM。

APP_DATE.VALIDATE_CHARDT

procedure APP_DATE.VALIDATE_CHARDT(

field varchar2 default NULL)

这个方法通过对给定form区域字符串日期时间格式的检查,看是否符合日期时间格式。

如果转换为一个日期时间类型失败,则这个程序显示一个信息并抛出form_trigger_failure异常。如果转换成功,这个方法拷贝转换值到区域中。

FND_DATE.STRING_TO_DATE

function FND_DATE.STRING_TO_DATE(

p_string IN VARCHAR2,

p_mask IN VARCHAR2)

RETURN DATE;

这个方法转换字符串为一个PL/SQL日期使用给定的日期格式掩码。这个方法测试所有安装的语言,如果必要,查找其中和匹配的语言。当你需要转换字符串数据为日期型数据时使用这个方法

如果这个方法不能将字符串转换则返回NULL。没有错误消息,你的代码必须测试NULL返回值并处理错误。

如果掩码是语言支持的片段那么语言是很重要的,对于格式掩码DD-MON_RRRR,当“MON”片段是语言决定的例如,February的缩写是FEB,但是法国的缩写是FEV,语言测试顺序是:

当前数据库语言

有“NUMERIC DATE LANGUAGE ”所致使的语言

Oracle应用程序安装的基础语言

其他安装语言,由FND_LANGUAGES表的NLS_LANGUAGE列排序决定(INSTALLED_FLAG列被设置为“I”)

FND_DATE.STRING_TO_CANONICAL

function FND_DATE.STRING_TO_CANONICAL(

p_string IN VARCHAR2,

p_mask IN VARCHAR2)

RETURN VARCHAR2;

这个方法和FND_DATE.STRING_TO_DATE相同,唯一不同的是这个方法以标准格式掩码返回字符串而不是PL/SQL类型日期。

APP_EXCEPTION:异常处理API

你可以使用APPPCORE包的APP_EXCEPTION来抛出异常

APP_EXCEPTION.RAISE_EXCEPTION

procedure APP_EXCEPTION.RAISE_EXCEPTION(

exception_type varchar2 default null,

exception_code number default null,

exception_text varchar2 default null);

这个方法存储异常信息并抛出form_trigger_failure

exception_text 附加的信息

exception_type 错误前缀指示错误的类型(例如:ORA或APP)

exception_code 指示错误的编码

APP_EXCEPTION.RETRIEVE

procedure APP_EXCEPTION.RETRIEVE;

这个方法从数据库中返回异常的信息

APP_EXCEPTION.GET_TYPE

function APP_EXCEPTION.GET_TYPE return varchar2;

这个方法返回异常的类型

APP_EXCEPTION.GET_CODE

function APP_EXCEPTION.GET_CODE return number;

这个方法返回异常的编码

APP_EXCEPTION.GET_TEXT

function APP_EXCEPTION.GET_TEXT return varchar2;

这个方法返回异常的文本内容

APP_EXCEPTION.RECORD_LOCK_EXCEPTION

这是预定义的异常,当记录不能锁时在异常处理中调用这个异常。它通常和APP_EXCEPTION.RECORD_LOCK_ERROR一起使用

APP_EXCEPTION.RECORD_LOCK_ERROR

procedure APP_EXCEPTION.RECORD_LOCK_ERROR (

counter IN OUT number);

这个方法询问用户是继续或取消尝试锁一条记录。如果选择继续它返回调用程序重新尝试。如果用户选择取消则显示“Unableto reserve record”并抛出FORM_TRIGGER_FAILURE异常。

APP_EXCEPTION.RECORD_LOCK_ERROR 每尝试两次提示用户。调用的过程应该在循环中尝试锁记录并在循环中的APP_EXCEPTION.RECORD_LOCK_EXCEPTION异常处理中调用RECORD_LOCK_ERROR方法。如果用户继续,RECORD_LOCK_ERROR返回并在循环中重复,如果用户取消,RECORD_LOCK_ERROR抛出FORM_TRIGGER_FAILURE并退出循环。

例如:

WHEN app_exceptions.record_lock_exception THEN

IF (c% ISOPEN) THEN

CLOSE c;

END IF;

app_exception.record_lock_error(counter);

END;

参数:counter 维护RECORD_LOCK_ERROR 来计数尝试锁记录的次数,调用过程时应初始化为NULL或0.

APP_EXCEPTION.DISABLED

procedure APP_EXCEPTION.DISABLED;

这个方法响铃,调用这个方法来失效一个简单方法(通常在一个KEY - trigger)

例如:禁用Clear功能可以通过在Form的key-clrblk里面调用app_exception.disabled,其实只是用Bell覆盖默认的执行

APP_FIELD:项关系集合

APP_FIELD.CLEAR_FIELDS

procedure APP_FIELD.CLEAR_FIELDS(

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);

如果10个区域不为null 并且不是复选框或列表,则清楚10个区域。

APP_FIELD.CLEAR_DEPENDENT_FIELDS

procedure 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);

如果主item为NULL并且附属items不为空并且不是复选框或列表,则清除附属items.

APP_FIELD.SET_DEPENDENT_FIELD

procedure APP_FIELD.SET_DEPENDENT_FIELD(

event varchar2,

master_field varchar2,

dependent_field varchar2

invalidate boolean default FALSE);

procedure APP_FIELD.SET_DEPENDENT_FIELD(

event varchar2,

condition boolean,

dependent_field varchar2

invalidate boolean default FALSE);

这个方法使一个item可输入或不可输入取决于主item是否为空或一个特殊的条件为true,并清除这个区域。附属的item可以是一个文本项或复选框或弹出式列表。

你通常在以下触发器中调用方法:

在主块的WHEN-VALIDATE_ITEM

在附属块的WHEN-VALIDATE-ITEM 条件在附属块的INIT事件中

PRE-RECORD

POST-QUERY(当附属块是一个多记录块)

APP_FIELD.SET_EXCLUSIVE_FIELD

APP_FIELD.SET_EXCLUSIVE_FIELD(

event varchar2,

field1 varchar2,

field2 varchar2,

field3 varchar2 default NULL);

这个方法定位items以便于这个集中只有一个item含有值,如果输入一个值在其中的一个item其他的item将被清除并且不可导航,这个过程只设置两个或三个item为一个集。

APP_FIELD.SET_INCLUSIVE_FIELD

procedure APP_FIELD.SET_INCLUSIVE_FIELD(

event varchar2,

field1 varchar2,

field2 varchar2,

field3 varchar2 default NULL,

field4 varchar2 default NULL,

field5 varchar2 default NULL);

这个方法定位5个item如果其中一个有值,则其它的item都需要一个值,当所有的item都为NULL这时item不是必输的。

APP_FIELD.SET_REQUIRED_FIELD

procedure APP_FIELD.SET_REQUIRED_FIELD(

event varchar2,

condition boolean,

field1 varchar2,

field2 varchar2 default NULL,

field3 varchar2 default NULL,

field4 varchar2 default NULL,

field5 varchar2 default NULL);

这个方法设置item是否必输取决于一个特定的条件。

APP_FIND:查询

使用这些方法实现查找窗口的功能。

APP_FIND.NEW

procedure APP_FIND.NEW(

block_name varchar2);

通过在查找窗口中的NEW按钮来使用这个函数使得Find Window关闭回到原来的Block,创建一条新记录。

APP_FIND.CLEAR

procedure APP_FIND.CLEAR;

使用这个方法在查找窗口中点击清楚按钮后清除窗口中的值。

APP_FIND.CLEAR_DETAIL

procedure APP_FIND.CLEAR_DETAIL(

detail_block varchar2);

这个方法清除结果块中的记录,这个动作只能在允许导航的触发器中执行。

APP_FIND.FIND

procedure APP_FIND.FIND(

block_name varchar2);

这个方法执行查找操作。

APP_FIND.QUERY_RANGE

procedure APP_FIND.QUERY_RANGE(

low_value varchar2/date/number,

high_value varchar2/date/number,

db_item_name varchar2);

这个方法构造查询的范围条件。它创建的条件类型由下限和上限值确定。

APP_FIND.QUERY_FIND

procedure APP_FIND.QUERY_FIND(

lov_name varchar2);

procedure APP_FIND.QUERY_FIND(

block_window varchar2,

find_window varchar2,

find_block varchar2);

这个方法调用ROW_LOV或查找窗口,调用这个方法在用户自定义触发器“QUERY_FIND”中。

APP_ITEM:单独项

APP_ITEM.COPY_DATE

procedure APP_ITEM.COPY_DATE(

date_val varchar2

item_name varchar2);

使用这个方法拷贝一个硬代码日期值到区域中。这个方法按下面方法拷贝:

Copy(to_char(to_date(’01-01-1900’,’DD-MM-YYYY’),’DD-MON-YYYY’),’bar.lamb’);

APP_ITEM.IS_VALID

procedure APP_ITEM.IS_VALID(

val varchar2

dtype varchar2 default ’DATE’);

function APP_ITEM.IS_VALID(

val varchar2

dtype varchar2 default ’DATE’)

return BOOLEAN;

使用这个方法测试一个区域中的值是字符类型但却是date ,number 或 integer 格式,这个过程抛出一个错误如果值不能转化为指定的类型。方法返回TURE如果格式正确,其它情况返回FALSE。

参数:

Dtype : 数据类型,DATE,INTEGER或NUMBER;

APP_ITEM.SIZE_WIDGET

procedure APP_ITEM.SIZE_WIDGET(

wid_name varchar2.

max_width number default 20);

APP_ITEM_PROPERTY:属性

APP_ITEM_PROPERTY.GET_PROPERTY

function APP_ITEM_PROPERTY.GET_PROPERTY(

item_name varchar2,

property number)

return number;

function APP_ITEM_PROPERTY.GET_PROPERTY(

item_id item,

property number)

return number;

使用这个方法返回当前item的属性设置。它与Oracle Forms’s ger_item_property 不同的是,它返回PROPERTY_ON 或PROPERTY_OFF 来代替 TRUE或FALSE

APP_ITEM_PROPERTY.SET_PROPERTY

procedure APP_ITEM_PROPERTY.SET_PROPERTY(

item_name varchar2,

property varchar2,

value number);

procedure APP_ITEM_PROPERTY.SET_PROPERTY(

item_id item,

property varchar2,

value number);

使用这个方法设置item的值,你应该不使用Oracle Forms 内建程序SET_ITEM_PROPERTY来直接设置DISPLAYED, ENABLED, ENTERABLE, ALTERABLE, INSERT_

ALLOWED, UPDATEABLE, NAVIGABLE, REQUIRED,和

ICON_NAME属性。使用APP_ITEM_PROPERTY.SET_PROPERTY来代替

APP_ITEM_PROPERTY.SET_PROPERTY 重新映射一些属性到其它地方例如改变视觉属性。同时,一些属性APP_ITEM_PROPERTY可以提供但Oracle Forms却不能。

参数:value 值为PROPERTY_ON或PROPERTY_OFF

APP_ITEM_PROPERTY.SET_VISUAL_ATTRIBUTE

procedure APP_ITEM_PROPERTY.SET_VISUAL_ATTRIBUTE(

item_name varchar2,

property number

value number);

这个方法不再使用,所有的颜色设置成为Oracle Look and Feel(OLAF)的一部分。

APP_NAVIGATE:打开一个form

使用这些方法代替FND_FUNCTION.EXECUTE来打开一个form的方法,当你想重新使用相同一打开的form的实例

APP_NAVIGATE.EXECUTE

procedure APP_NAVIGATE.EXECUTE(

function_name in varchar2,

open_flag in varchar2 default ’Y’,

session_flag in varchar2 default ’SESSION’,

other_params in varchar2 default NULL,

activate_flag in varchar2 default ’ACTIVATE’,

pinned in boolean default FALSE);

这个方法与FND_FUNCTION.EXECUTE相同,除了它允许重新启动一个第二次调用的form,例如,如果formA调用方法B和这个方法,若在以后再次调用方法B,formB的实例将再次使用。当你有一个formB为formA的详细窗口并且你希望“detail Window”反映出”Master window ”的变化。相反,FND_FUNCTION.EXECUTE通常都启动一个form的新的实例。

多个forms可以共享相同的目标form例如,如果formA调用方法B和APP_NAVIGATE.EXECUTE,并且formC同样调用方法B,当前B的示例将被重启。

APP_NAVIGATE.EXECUTE 和 FND_FUNCTION.EXECUTE存储当前Window的位置和大小在下列全局变量中,所以目标form 可以访问它们。

Global.fnd_launch_win_x_pos

Global.fnd_launch_win_y_pos

Global.fnd_launch_win_width

Global.fnd_launch_win_height

扩展的用处是目标form可以被定为在当前窗口相关的位置。当调用APP_NAVIGATE.EXECUTE 这些值当目标窗口是第一次调用时是有效的,但不能在RESTART事件中引用。

使用APP_NAVIGATE.EXECUTE要求在目标form(formB)中特殊的编号。目标form 必须包含一个用户命名的触发器RESTART,以及需要调用APP_STANDARD.EVENT在WHEN-NEW-FORM-INSTANCE和WHEN-FORM-NAVIGATE触发器中。当一个form重新使用,APPCORE就会:

1. 调用个do_key(‘clear_form’)在目标form中,同用户使用Edit->Clear->Form 功能相同。

2. 如果成功,将传入参数给目标窗体

3. 用户定义RESTART代码执行。

在调用时,通常将查询代码写在RESTART trigger中,第一次调用不会触发目标Form中RESTART trigger代码,因此ORACLE建议可在在WHEN–NEW–FORM–INSTANCE triggers中添加第一次调用需执行代码;第二次以后调用,系统不会重新创建一个新的Form. instance,而是继续使用老的Form. instance,因此将不再触发目标窗体pre-form、when–new–form–instance triggers,也就是说无论该函数被调用了多少次,界面上只会有一个目标窗体。

参数: open_flag: ‘Y’说明OPEN_FORM被使用,‘N‘说明NEW_FORM将被使用。你应该传递’Y‘使用Oracle内建程序OPEN_FORM来打开一个form而不是新建一个form

Session_flag: 传递Y如果打开一个新的session 传递N使用与存在form 相同的session

Activate_flag ACTIVATE 或 NO_ACTIVATE(默认为ACTIVATE)这个标记决定焦点是否在新form上(ACTIVATE)或停留在调用的form上(NO_ACTIVATE)

Pinned 如果设置为TRUE将打开一个新实例,(如同FND_FUNCTION.EXECUTE)

如果设置为FALSE 将尝试重新使用功能的实例。

APP_RECORD:读

APP_RECORD.TOUCH_RECORD

procedure TOUCH_RECORD(

block_name varchar2 default NULL,

record_number NUMBER default NULL);

设置新纪录的状态为INSERT_STATUS,对于查询记录,记录被锁并且状态设置为CHANGED_STATUS,

APP_RECORD.HIGHLIGHT

procedure APP_RECORD.HIGHLIGHT(

value varchar2/number);

调用这个方法调用内建程序DISPLAY_ITEM来改变当前记录TEXT_ITEM,LIST的视觉属性。对于RECORDS_DISPLAYED属性为1的记录它不做任何事。为了高亮数据,传递‘SELECTED_DATA‘,关闭高亮显示传递’DATA’.你可以传递任何视觉属性的名称。

APP_RECORD.FOR_ALL_RECORDS

procedure APP_RECORD.FOR_ALL_RECORDS(

block_name varchar2,

trigger_name varchar2);

procedure APP_RECORD.FOR_ALL_RECORDS(

trigger_name varchar2);

这个方法为当前块或指定块中的每条记录执行指定的触发器。

如果指定一个块,GO_BLOCK内建程序出发,当完成时这个光标返回到原始的记录和item

如果这个触发器失败,则抛出FORM_TRIGGER_FAILURE 异常,光标停留在发生错误的记录。

你可以使用全局变量传递参数到指定的触发器。通常是在调用这个方法前设置全局变量

当没有记录查询时APP_RECORD.FOR_ALL_RECORDS触发一次。

APP_RECORD.DELETE_ROW

procedure APP_RECORD.DELETE_ROW(

check_delete BOOLEAN default FALSE,

product_name varchar2 default NULL,

message_name varchar2 default NULL);

function APP_RECORD.DELETE_ROW(

check_delete BOOLEAN default FALSE,

product_name varchar2 default NULL,

message_name varchar2 default NULL)

return BOOLEAN;

调用这个方提供一个通用的消息来确认用户是否打算删除一行。

如果这个方法调用,它不删除一行,如果用户回应确认删除一行返回TRUE,否则返回FALSE如果你有一个复杂的删除,你可以先确认用户是否希望删除这条记录

如果这个过程被调用,如果用户返回确认则删除这条记录。当有多余一个的快允许删除时应该提供的信息。
参数:check_delete 强制设置块DELETE_ALLOWED

Product_name 产品的简称如果你要传递你自己的消息,否则使用默认的消息

Message_name 消息的的名称。

APP_RECORD,VALIDATE_RANGE

procedure APP_RECORD.VALIDATE_RANGE(

from_item varchar2,

to_item varchar2,

range_name varchar2 default NULL,

event_name varchar2 default ’WHEN–BUTTON–PRESSED’,

dtype varchar2 default ’DATE’,

product_name varchar2 default NULL,

message_name varchar2 default NULL);

调用这个方法验证from 的值小于to 值这样的范围。在查询按钮的WHEN-BUTTON-PRESSED触发器中使用这个方法或在WHEN-VALIDATE-RECORD 触发器验证用户输入数据的范围是否合法。

APP_STANDARD 包

APP_STANDARD.APP_VALIDATE

procedure APP_STANDARD.APP_VALIDATE (scope NUMBER);

这个方法和Oracle Forms中的内建程序Validate基本相似,不同的在于它导航到第一个导致验证失败的item,并且它提供按钮标准的支持。

Scope 验证的范围,包括你DEFAULT_SCOPE,FORM_SCOPE,BLOCK_SCOPE,RECORD_SCOPE和ITEM_SCOPE。

APP_STANDARD.EVENT

procedure APP_STANDARD.EVENT (

event_name varchar2);

这个方法调用指定事件的标准动作。

APP_STANDARD.PLATFORM

APP_STANDARD.PLATFORM varchar2(30);

这个包变量保存由GET_APPLICATION_PROPERTY(USER_INTERFACE)返回的值的名字。正确的值有‘MACINTOSH‘,MSWINDOWS’,MSWINDOWS32,和‘MOTIF’。

例如:if APP_STANDARD.PLATFORM = ’MSWINDOWS’ then

MDI_height := get_window_property(FORMS_MDI_WINDOW,

HEIGHT);

end if;

APP_WINDOW:Window

APP_WINDOW.CLOSE_FIRST_WINDOW

procedure APP_WINDOW.CLOSE_FIRST_WINDOW;

这个调用推出form这个方法抛出FORM_TRIGGER_FAILURE.

APP_WINDOW.PROGRESS

procedure APP_WINDOW.PROGRESS( percent number);

这个方法管理进度指示对象的所有方面,如果它不可见,调用这个方法打开并置中这个window .当进度>=99.9时,这个窗口自动关闭,对于任意的其他进度,这个进度条被重新设置大小

Percent 一个在0到99.9的数字,表示完成的值

APP_WINDOW.SET_COORDINATION

procedure APP_WINDOW.SET_WINDOW_POSITION(

child varchar2,

rel varchar2,

parent varchar2 default NULL);

调用这个方法设置窗口的样式:

? CASCADE

? RIGHT

? BELOW

? OVERLAP

? CENTER

? FIRST_WINDOW

如果这个窗口打开但是被遮蔽,这个方法激活窗口,如果窗口最小化,调用这个方法正常化它

如果系统资源低,一个警告信息就会显示。

APP_WINDOW.SET_TITLE

procedure APP_WINDOW.SET_TITLE(

window_name varchar2,

session varchar2,

instance1 varchar2 default ’APP_ARGUMENT_NOT_PASSED’,

instance2 varchar2 default ’APP_ARGUMENT_NOT_PASSED’,

instance3 varchar2 default ’APP_ARGUMENT_NOT_PASSED’);

使用这个方法设置Window的标题

标签:触发器,form,default,APP,Oracle,DATE,varchar2,ebs,二次开发
来源: https://blog.csdn.net/shuihaya/article/details/114302205

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有