EBS exit_form()


        关闭Form之前提示“是否关闭该表单”是通过触发POST-FORM触发器来管理的POST-FORM的代码: APP_STANDARD.EVENT('POST-FORM');
        KEY-EXIT触发器调用的是build-in过程,其中:SYSTEM.FORM_STATUS是只读变量,不可修改,在关闭前会检测:SYSTEM.FORM_STATUS,如果是QUERY,则不提示“是否关闭该表单”直接关闭,如果是CHANGED或者NEW,则根据exit_form的参数来决定是否提示“是否关闭该表单”。
        系统变量:system.form_status代表了form的状态:'CHANGED', 'NEW', 'QUERY'。
        按下默认[exit]键或选择默认菜单中的exit项时,程序执行的是do_key('KEY-EXIT')。
        如果没有自定义key-exit触发器,do_key('KEY-EXIT')调用key-exit对应的默认built-in过程:exit_form。
        exit_form实际上有三个重载过程: 
                exit_form;
                 exit_form(commit_mode); 
                exit_form(commit_mode, rollback_mode);
        exit_form等于exit_form(ASK_COMMIT),它将检查system.form_status,如果不为'QUERY',弹出对话框提示是否保存变动。DO_COMMIT,NO_COMMIT,NO_VALIDATE参数将执行相应动作而不弹出对话框。
         如果你想自定义退出过程,要做的就是:创建key-exit触发器,在触发器中判断:system.form_status,执行相应动作或调用exit_form。当然你如果只想简单的保存(或不保存)退出,调用参数的exit_form就行了,不用判断:system.form_status。具体用例可以在forms builder的联机帮助中查到。 
        注意一点,:system.form_status只会随用户操作执行built-in过程而改变。你在触发器或过程中使用insert,update语句直接修改数据库,form并不知道,:system.form_status并不改变。
     
 

你可能感兴趣的:(oracle,form,form,退出,exit_form)