zoukankan      html  css  js  c++  java
  • [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]           
                    PRINT                            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')。

    ############################## 通往精神的路很多,物质只是其中一种 ##############################
    http://www.onejava.com/article/oracle/wip/wiptop.htm
    https://docs.oracle.com/cd/A60725_05/html/comnls/us/index.htm
    http://www.oracle.com/technetwork/cn/developer-tools/apex/getting-started-094884-zhs.html
    https://docs.oracle.com/cd/B34956_01/current/html/docset.html
  • 相关阅读:
    当Django模型迁移时,报No migrations to apply 问题时
    django--各个文件的含义
    django--创建项目
    1013. Battle Over Cities (25)
    1011. World Cup Betting (20)
    1009. Product of Polynomials (25)
    1007. Maximum Subsequence Sum (25)
    1006. Sign In and Sign Out (25)
    1008. Elevator (20)
    1004. Counting Leaves (30)
  • 原文地址:https://www.cnblogs.com/pompeii2008/p/5412667.html
Copyright © 2011-2022 走看看