Oracle Forms开发之触发器(trigger)

本文详细介绍了Oracle Forms中经常需要修改和不能修改的触发器,提供了触发器的功能描述、用法示例以及如何自定义这些触发器。内容涵盖了ACCEPT、FOLDER_RETURN_ACTION等关键触发器的修改与应用,同时讲解了客户化开发的标准和CUSTOM库的使用,为开发者提供了深入理解Oracle Forms开发的重要参考。
摘要由CSDN通过智能技术生成
经常需要修改的触发器:

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 s

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值