open_form、call_form 和 new_form 在 oracle 表单中有什么区别

What are differences among open_form, call_form and new_form in oracle forms

oracle 表单中的open_formcall_formnew_form 有什么区别?详细。

多表单应用程序旨在在单个表单运行时会话期间打开多个表单模块。每个表单的运行时会话都以相同的方式开始——将单个表单模块加载到内存中。一旦第一个表单模块开始执行,它就可以以编程方式调用任意数量的附加表单模块,这些模块又可以调用其他表单。

当一个表单模块以编程方式调用另一个表单模块时,Oracle Forms 在适当的目录中查找新模块,然后将其加载到内存中。

让我们看看以下三个内置函数,以从一个表单调用另一个表单。

OPEN_FORM内置

此内置程序打开指定的表单。使用OPEN_FORM创建多窗体应用,即同时打开多个窗体的应用。

进入查询模式:否

语法:

    PROCEDURE OPEN_FORM 
    (formmodule_name VARCHAR2, 
    activate_mode NUMBER, 
    session_mode NUMBER, 
    data_mode NUMBER, 
    paramlist_id PARAMLIST);

其中:

formmodule_name:

  • 要打开的表单的名称。数据类型为 VARCHAR2。必需

activate_mode:

  • ACTIVATE:(默认设置。)将焦点设置到表单以使其成为应用程序中的活动表单。
  • NO_ACTIVATE:打开窗体但不将焦点设置到窗体。当前表格保持最新状态。

session_mode:

  • NO_SESSION(默认值。):指定打开的表单应与当前表单共享相同的数据库会话。
  • 会话:指定应该为打开的表单创建一个新的、单独的数据库会话。

data_mode:

  • NO_SHARE_LIBRARY_DATA(默认值。):在 运行 时,Oracle Forms 将不会在附加了相同库的表单之间共享数据(在设计时)。
  • SHARE_LIBRARY_DATA:在 运行 时,Oracle Forms 将在附加了相同库的表单之间共享数据(在设计时)。

paramlist_id:

  • Oracle Forms 在创建参数列表时分配给参数列表的唯一 ID。

CALL_FORM 内置:

运行指定的表单,同时保持父表单处于活动状态。 Oracle Forms 运行 调用的窗体与父窗体具有相同的运行窗体首选项。当被调用的表单退出时,Oracle Forms 处理在您发起对 CALL_FORM.

的调用的点处在调用表单中恢复

进入查询模式:是

语法:

    PROCEDURE CALL_FORM
    (formmodule_name VARCHAR2, 
    display NUMBER, 
    switch_menu NUMBER, 
    query_mode NUMBER, 
    data_mode NUMBER, 
    paramlist_name VARCHAR2);

其中:

formmodule_name:

  • 被调用表单的名称(必须用单引号引起来)。数据类型为 VARCHAR2。

显示:

  • HIDE(默认设置。):Oracle Forms 将在绘制被调用窗体之前隐藏调用窗体。
  • NO_HIDE: Oracle Forms 将显示被调用的表单而不隐藏调用表单。

switch_menu:

  • NO_REPLACE(默认值。):Oracle Forms 将为被调用窗体保持调用窗体的默认菜单模块处于活动状态。
  • DO_REPLACE: Oracle Forms 会将调用窗体的默认菜单模块替换为被调用窗体的默认菜单模块。

query_mode:

  • NO_QUERY_ONLY(默认值。):Oracle Forms 将在正常模式下 运行 指示的表单,允许最终用户从被调用的表单中执行插入、更新和删除。
  • QUERY_ONLY: Oracle Forms 将 运行 指定的表单处于仅查询模式,允许最终用户查询,但不能插入、更新或删除记录。

data_mode:

  • NO_SHARE_LIBRARY_DATA(默认值。):在 运行 时,Oracle Forms 将不会在附加了相同库的表单之间共享数据(在设计时)。
  • SHARE_LIBRARY_DATA:在 运行 时,Oracle Forms 将在附加了相同库的表单之间共享数据(在设计时)。

paramlist_name:

  • 您在定义参数列表对象时为其指定的名称。数据类型为 VARCHAR2。

NEW_FORM内置

退出当前表格并进入指定表格。调用窗体作为父窗体终止。如果调用表单已被更高级别的表单调用,Oracle Forms 会保持更高级别的调用处于活动状态,并将其视为对新表单的调用。 Oracle Forms 释放终止表单正在使用的内存(例如数据库游标)。 Oracle Forms 运行 是具有与父窗体相同的运行窗体选项的新窗体。如果父表单是被调用的表单,Oracle Forms 运行s 新表单具有与父表单相同的选项。

进入查询模式:否

语法:

    PROCEDURE NEW_FORM 
    (formmodule_name VARCHAR2, 
     rollback_mode NUMBER, 
     query_mode NUMBER, 
     data_mode NUMBER, 
     paramlist_name VARCHAR2);

其中:

formmodule_name:

  • 然后是被调用表单的名称(必须用单引号引起来)。数据类型为 VARCHAR2。

rollback_mode:

  • TO_SAVEPOINT(默认值。):Oracle Forms 会将所有未提交的更改(包括已发布的更改)回滚到当前表单的保存点。
  • NO_ROLLBACK: Oracle Forms 将退出当前表单而不回滚到保存点。
  • FULL_ROLLBACK:Oracle Forms 回滚在当前 Runform 会话期间所做的所有未提交的更改(包括已发布的更改)。

query_mode:

  • NO_QUERY_ONLY(默认值。)正常运行指示的表单,允许最终用户在表单中执行插入、更新和删除操作。
  • QUERY_ONLY 以仅查询模式运行指示的表单;最终用户可以查询记录,但不能执行插入、更新或删除。

data_mode:

  • NO_SHARE_LIBRARY_DATA(默认值。):在 运行 时,Oracle Forms 将不会在附加了相同库的表单之间共享数据(在设计时)。
  • SHARE_LIBRARY_DATA:在 运行 时,Oracle Forms 将在附加了相同库的表单之间共享数据(在设计时)。

paramlist_name:

  • 您在定义参数列表对象时为其指定的名称。数据类型为 VARCHAR2。

来源here