日期:2014-05-17  浏览次数:20886 次

Oracle开发中open_form,call_form,new_form 的区别 .
1、open_form是一个受限的封装过程,他可以产生一个新的form但不代替原来的form,在新的form启动后可以不把控制移动到新的form里面,也可以将输入焦点移动到新的form里面,用户可以在两个form之间导航。〕

open_form的调用格式
open_form(form_name,activate_mode,session_mode,data_mode,paramlist_id)
     具体意思,
1) form_name 文件名以及路径。
2) activate_mode选择activate是打开新的form并且把输入焦点移入该form,选择no_activate是不移 动焦点,还在原来的form里面
3) session_mode是打开新的form的时候的会话方式,可选session和no_session,session创建新的数据库会话,no_session不产生新的会话,和原来的form享受一个session,这个时候原来form里面的commit,都有效果,该选项为默认值.
4) data_mode表示form 之间是否可以共享数据库(libraty data) 取值 no_share_library_data 不共享(默认)share_library_data  共享
5) paramlist_id是form中唯一的参数,次项可选

2、call_form于open_form有较大的区别,call_form是一个非受限过程,启动一个新的form后,焦点立刻被转意到新的form里面,原form失去输入焦点,便的不可操作,只有等到新的form退出后在可以使用原来的form
call_form调用格式
  call_form(form_name,display,switch_nemu,query_mode,data_mode,paramlist_name)

1) display 打开新的form是否隐藏原form   hide 隐藏,no_hide不隐藏
2) switch_nemu 打开新的form,是否用新的form的菜单代替原来的form菜单 取值o_replace ,no_replace
3) query_mode  表示是否仅以查询方式新的form,no_share_only,不是仅以查询方式打开form(默认),query_only,以查询方式启动form
4) data_mode 表示form之间是否可以共享数据库(library data)(同上)
5) paramlist_name 表示form 之间传递的参数,为可选项

3、new_form:启动一个新的form,新的form将完全取代原form,但退出新的form时,输入焦点直接退出到原form的父级form或者其他启动原form的位置,在启动新的form之前,系统首先要从原form中退出,并且释放所占内存空间,然后加载新的form,如果原form数据有变化,则在启动新的form的时候终止原form的用户操作,提示用户提交数据,然后在启动新的form
    new_form的调用格式
new_form(form_name,rollback_mode,query_mode,data_mode,paramlist_name)
1) form_name 文件名以及路径
2) rollback_mode 取值to_savepoint,no_rollback,full_rollback
3) query_mode 表示是否仅以查询方式启动新的form
4) data_mode 表示form之间是否可以共享数据库(同上)
5) paramlist_name代表form之间传递的参数,此项为可选项目!