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(此时会调用内置子程序).