[Form Builder]内置函数execute_trigger、do_key详解
转:http://yedward.net/?id=82
1、execute_trigger:用来运行一个指定的触发器,常用来运行用户自定义的触发器。
语法:procedure execute_trigger(trigger_name varchar2),其中trigger_name是指定的一个有效的用户命名的触发器。execute_trigger无法指定调用的trigger的范围,所以forms一般会从最底层的触发器开始,然后向上处理,所以我见过一些用到execute_trigger的时候,它调用的自定义触发器都写在了form级别。
如果要运行一个关联了键(Key)的内置触发器,应该使用内置函数do_key而不是execute_trigger。例如execute_trigger('KEY-NEXT-ITEM')就应该改为do_key('NEXT_ITEM')。
值得注意的是,对于内置的触发器虽然也可以用execute_trigger来执行,但是这种方式并不是推荐的,因为默认的失败处理行为是不同的,它不像forms按照规则自动调用触发器那样处理。例如,在默认的处理中,如果when-validate-item触发器失败,那么它会抛出一个异常并停止form的运行,但是,如果when-validate-item是由execute_trigger来调用执行的,那么如果调用执行失败了,这个失败并不会停止form的运行,而是在执行execute_trigger以后返回的时候把变量form_failure设置为false。所以,一般的execute_trigger更常用在执行自定义的触发器。
下面是我在看form中menu的时候的一段代码,放在这里加强学习:
set_menu_item_property ('VIEW_MENU.DEFAULT', CHECKED, PROPERTY_FALSE);
set_menu_item_property ('VIEW_MENU.SAVED', CHECKED, PROPERTY_FALSE);
set_menu_item_property ('VIEW_MENU.CUSTOM', CHECKED, PROPERTY_TRUE);
set_menu_item_property ('VIEW_MENU.SET_1', CHECKED, PROPERTY_FALSE);
Execute_trigger('T_view_custom'); -- T_view_custom就是自定义的触发器
至于上面涉及到的form_failure以及form_success,它们表示的是返回上一次form执行结果的布尔表达式,至于是true还是false,请参见下面:
对于form_failure,其返回值如下:
success FALSE
failure TRUE
fata error FALSE
对于form_success,其返回值如下:
success TRUE
failure FALSE
fata error FALSE
2、do_key:运行对应于特定内置子程序的键触发器,它的功能相当于按下相应的功能键。
| 内置子程序 | 键触发器 | 相关的功能键 |
| CLEAR_BLOCK | Key-CLRBLK | [Clear Block] |
| CLEAR_FORM | Key-CLRFRM | [Clear Form] |
| CLEAR_RECORD | Key-CLRREC | [Clear Record] |
| COMMIT_FORM | Key-COMMIT | [Commit] |
| COUNT_QUERY | Key-CQUERY | [Count Query Hits] |
| CREATE_RECORD | Key-CREREC | [Insert Record] |
| DELETE_RECORD | Key-DELREC | [Delete Record] |
| DOWN | Key-DOWN | [Down] |
| DUPLICATE_ITEM | Key-DUP-ITEM | [Duplicate Item] |
| DUPLICATE_RECORD | Key-DUPREC | [Duplicate Record] |
| EDIT_TEXTITEM | Key-EDIT | [Edit] |
| ENTER | Key-ENTER | [Enter] |
| ENTER_QUERY | Key-ENTQRY | [Enter Query] |
| EXECUTE_QUERY | Key-EXEQRY | [Execute Query] |
| EXIT_FORM | Key-EXIT | [Exit/Cancel] |
| HELP | Key-HELP | [Help] |
| LIST_VALUES | Key-LISTVAL | [List] |
| LOCK_RECORD | Key-UPDREC | [Lock Record] |
| NEXT_BLOCK | Key-NXTBLK | [Next Block] |
| NEXT_ITEM | Key-NEXT-ITEM | [Next Item] |
| NEXT_KEY | Key-NXTKEY | [Next Primary Key Fld] |
| NEXT_RECORD | Key-NXTREC | [Next Record] |
| NEXT_SET | Key-NXTSET | [Next Set of Records] |
| PREVIOUS_BLOCK | Key-PRVBLK | [Previous Block] |
| PREVIOUS_ITEM | Key-PREV-ITEM | [Previous Item] |
| PREVIOUS_RECORD | Key-PRVREC | [Previous Record] |
| Key-PRINT | [Print] | |
| SCROLL_DOWN | Key-SCRDOWN | [Scroll Down] |
| SCROLL_UP | Key-SCRUP | [Scroll Up] |
| UP | Key-UP | [Up] |
表1:内置子程序 - 键触发器 - 功能键对应表
需要注意的是do_key只接受内置子程序的名字作为参数,而不是键的名字,上面的对应表非常重要哦,在以后开发的时候参考非常有用,比如do_key('ENTER_QUERY')和execute_trigger('Key-ENTQRY')。
[Form Builder]内置函数execute_trigger、do_key详解的更多相关文章
- 函数新特性、内联函数、const详解
一.函数回顾与后置返回类型 函数定义中,形参如果在函数体内用不到的话,则可以不给形参变量名字,只给其类型. 函数声明时,可以只有形参类型,没有形参名 把函数返回类型放到函数名字之前,这种写法,叫前置返 ...
- SpringBoot内置生命周期事件详解 SpringBoot源码(十)
SpringBoot中文注释项目Github地址: https://github.com/yuanmabiji/spring-boot-2.1.0.RELEASE 本篇接 SpringBoot事件监听 ...
- iOS OC内联函数 inline的详解
inline 在iOS中的一些框架中,static inline是经常出现的关键字组合. static自不用多说,表示在当前文件中应用,如 static A, 在其它文件中也可以出现static A. ...
- Spring Cloud内置的Zuul过滤器详解
Spring Cloud默认为Zuul编写并启用了一些过滤器,这些过滤器有什么作用呢?我们不妨按照@EnableZuulServer.@EnableZuulProxy两个注解进行展开,相信大家对这两个 ...
- Python内置OS模块用法详解
大家好,从今天起早起Python将持续更新由小甜同学从初学者的角度学习Python的笔记,其特点就是全文大多由新手易理解的代码与注释及动态演示.刚入门的读者千万不要错过! 很多人学习python,不知 ...
- Python自动化运维之5、内置函数
python3.x内置函数 官网详解 一些例子:后期慢慢接触到再补充 # help() 详细查看某个类有那些方法或者方法的具体使用 >>> help(str) >>> ...
- MYSQL常用内置函数详解说明
函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...
- python基础-内置函数详解
一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...
- Python内置函数详解
置顶 内置函数详解 https://docs.python.org/3/library/functions.html?highlight=built#ascii https://docs.pyth ...
随机推荐
- INV Close Period & GL Import Journal > DML tables
1. (N) Inventory > Accounting Close Cycle > Inventory Accounting Periods Insert data ...
- 小图用 imageNamed: 大图用 dataWithContentsOfFile:options
1down voteaccepted If you're loading images like:[UIImage imageNamed:@"myImage.png"];Then ...
- JD-GUI反编译后代码逻辑分析
一,用jd-gui.exe等工具查看源代码.如何你不会,可以参看此文章: http://blog.csdn.net/hp_2008/article/details/8207879 可以到以下连接下载可 ...
- UVa 11752 - The Super Powers 数学
请看这个说明http://blog.csdn.net/u014800748/article/details/45914353 #define _CRT_SECURE_NO_WARNINGS #incl ...
- POJ 1511 Invitation Cards dij
分析:正向加边,反向加边,然后两遍dij #include<cstdio> #include<cstring> #include<queue> #include&l ...
- NPOI读取Excel案例
3.4用NPOI操作EXCEL--从Excel中抽取文本 我们知道,搜索引擎最擅长处理的就是文本,而Excel中的内容并不是以文本方式存储的.那么如果想要搜索引擎爬虫能够抓取到Excel中的内容是比较 ...
- APMServ5.2.6 + xdebug + notepad++调试环境配置
(原创文章,转载请注明出处:http://www.cnblogs.com/qzhforthelife/archive/2013/06/21/3147772.html) 刚整了两个多小时才把这个调试环境 ...
- 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程01: 资源导入》
1. 资源导入 概述: 制作一款游戏需要用到很多资源,比如:模型.纹理.声音和脚本等.通常都是用其它相关制作资源软件,完成前期资源的收集工作.比如通常用的三维美术资源,会在Max.MAYA等相应软件中 ...
- HW4.11
public class Solution { public static void main(String[] args) { int count = 0; for(int i = 100; i & ...
- A Tour of Go Struct Fields
Struct fields are accessed using a dot. package main import "fmt" type Vertex struct { X i ...