我正在使用exit_form来关闭表单。但是,当我从另一个表单调用该表单,然后按退出键时,它将返回到调用它的表单。示例:如果form_a调用form_b。在form_b触发器exit_forms触发器中,它将调用form_b。嗯,我需要退出所有打开的表单。
谢谢
发布于 2014-04-12 12:46:13
您需要使用new_form语句而不是open_form或call_form:
new_form退出当前窗体并输入指定的窗体。调用窗体作为父窗体终止。如果调用表单是由更高的窗体调用的,Oracle窗体将保持较高的调用活动,并将其视为对新窗体的调用。Oracle释放终止窗体为using.Oracle窗体的内存(例如数据库游标),该窗体使用与父窗体相同的运行窗体选项运行新窗体。如果父窗体是被调用的窗体,则Oracle使用与父form.NEW_FORM相同的选项运行新表单,可以指示父窗体继续数据库事务、回滚到当前保存点或执行完全回滚。还可以指示它以查询模式打开新表单,并共享或不共享库数据。
发布于 2014-04-12 09:21:24
根据甲骨文表格帮助
call_form:在保持父窗体活动的同时运行指定的窗体。Oracle窗体使用与父窗体相同的Runform首选项运行被调用的窗体。当被调用的表单退出时,Oracle窗体处理将在您启动对CALL_FORM的调用时在调用表单中恢复。
open_form:打开指定的表单。使用OPEN_FORM创建多个窗体应用程序,即同时打开多个窗体的应用程序。
因此,我建议尝试使用带有open_form参数的no_active,然后调用exit_form退出表单(A),在表单(A)关闭后,打开表单(B)将获得焦点。因此,您完成表单(B)的处理并关闭它,它将退出所有的表单。
简化:在form_A on按钮触发器when_pressed_button (负责打开form_B)上,您可以尝试
OPEN_FORM('form_b', NO_ACTIVATE, NO_SESSION, 'my_parameters');
exit_form(no_validate);
https://stackoverflow.com/questions/23033357
复制相似问题