EBS Form开发中的内置函数DO_KEY
(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究)
描述
运行对应于特定内置子程序的KEY(键)触发器。如果没有这样的触发器,那就运行其特定的子程序。这里的行为就是模拟按下相应的功能键。
语法
PROCEDURE DO_KEY(built_in_subprogramVARCHAR2);
受限制的内置类型的程序。
支持输入查询模式。
参数
built_in_subprogram 指定一个内置的有效的子程序的名称。
内置子程序 | 键触发器 | 相关的功能键 |
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] |
DO_KEY的限制
DO_KEY只接收内置子程序的名字作为参数,而不是键的名字,比如DO_KEY(‘ENTER_QUERY’).
如果要接受一个特定的键的名字,可以使用内置的EXECUTE_TRIGGER:EXECUTE_TRIGGERS(‘KEY_F11’).
DO_KEY示例
/*
** Built-in: DO_KEY
** Example: Simulate pressing the [ExecuteQuery] key.
*/
BEGIN
DO_KEY(‘Execute_Query‘);
END;
个人理解
l DO_KEY是在PL/SQL代码中模拟功能按键。
l 调用DO_KEY比直接调用内置的子程序要好,因为以后如果要在相应的FORM/BLOCK/ITEM实现对应的TRIGGER并作特殊处理时,就不会因为直接调用内置子程序而跳过这些处理。
l 也和EXECUTE_TRIGGER有明确的区别,因为调用DO_KEY时可以不存在相应的TRIGGER(此时会调用内置子程序).