CALL_FORM Built-in
Description
Runs an indicated form while keeping the parent form active. Oracle Forms runs the called form with the same Runform preferences as the parent form. When the called form is exited Oracle Forms processing resumes in the calling form at the point from which you initiated the call to CALL_FORM.
Syntax
PROCEDURE CALL_FORM
(formmodule_name VARCHAR2);
PROCEDURE CALL_FORM
(formmodule_name VARCHAR2,
display NUMBER);
PROCEDURE CALL_FORM
(formmodule_name VARCHAR2,
display NUMBER,
switch_menu NUMBER);
PROCEDURE CALL_FORM
(formmodule_name VARCHAR2,
display NUMBER,
switch_menu NUMBER,
query_mode NUMBER);
PROCEDURE CALL_FORM
(formmodule_name VARCHAR2,
display NUMBER,
switch_menu NUMBER,
query_mode NUMBER,
data_mode NUMBER);
PROCEDURE CALL_FORM
(formmodule_name VARCHAR2,
display NUMBER,
switch_menu NUMBER,
query_mode NUMBER,
paramlist_id PARAMLIST);
PROCEDURE CALL_FORM
(formmodule_name VARCHAR2,
display NUMBER,
switch_menu NUMBER,
query_mode NUMBER,
paramlist_name VARCHAR2);
PROCEDURE CALL_FORM
(formmodule_name VARCHAR2,
display NUMBER,
switch_menu NUMBER,
query_mode NUMBER,
data_mode NUMBER,
paramlist_id PARAMLIST);
PROCEDURE CALL_FORM
(formmodule_name VARCHAR2,
display NUMBER,
switch_menu NUMBER,
query_mode NUMBER,
data_mode NUMBER,
paramlist_name VARCHAR2);
Built-in Type unrestricted procedure
Enter Query Mode yes
Parameters
- formmodule_name
-
- The name of the called form (must be enclosed in single quotes). Datatype
is VARCHAR2.
-
- display
-
- HIDE (The default.) Oracle Forms will hide the calling form before drawing the called form.
NO_HIDE Oracle Forms will display the called
form without hiding the calling form.
-
- switch_menu
-
- NO_REPLACE (The default.) Oracle Forms will keep the
default menu module of the calling form active for the called form.
-
- DO_REPLACE Oracle Forms will replace the
default menu module of the calling form with the default menu module of the
called form.
-
- query_mode
-
- NO_QUERY_ONLY (The default.) Oracle Forms will
run the indicated form in normal mode, allowing the end user to perform inserts,
updates, and deletes from within the called form.
-
- QUERY_ONLY Oracle Forms will run the indicated
form in query-only mode, allowing the end user to query, but not to insert,
update, or delete records.
-
- data_mode
-
- NO_SHARE_LIBRARY_DATA (The default.) At runtime, Oracle Forms will not share data between forms that have identical libraries
attached (at design time).
SHARE_LIBRARY_DATA At runtime, Oracle Forms
will share data between forms that have identical libraries attached (at design
time).
-
- paramlist_id
-
- The unique ID Oracle Forms assigns when it creates the parameter list.
You can optionally include a parameter list as initial input to the called
form. Datatype is PARAMLIST.
-
- paramlist_name
-
- The name you gave the parameter list object when you defined it. Datatype
is VARCHAR2.
CALL_FORM Restrictions
- Oracle Forms ignores the query_mode parameter when the calling form is
running in QUERY_ONLY mode. Oracle Forms runs any form that is called from
a QUERY_ONLY form as a QUERY_ONLY form, even if the CALL_FORM syntax specifies
that the called form is to run in NO_QUERY_ONLY (normal) mode.
- A parameter list passed to a form via CALL_FORM cannot contain parameters
of type DATA_PARAMETER. Only text parameters can be passed with CALL_FORM.
- Some memory allocated for CALL_FORM is not deallocated until the Runform
session ends. Exercise caution when creating a large stack of called forms.
- When you execute CALL_FORM in a Pre-Logon, On-Logon, or Post-Logon trigger,
always specify the DO_REPLACE parameter to replace the calling form's menu
with the called form's menu. Failing to specify DO_REPLACE will result in
no menu being displayed for the called form. (An alternative solution is to
call the REPLACE_MENU Built-in from a When-New-Form-Instance trigger in the
called form.)
- If you execute CALL_FORM from Menu PL/SQL code, and subsequently replace
the current menu in the called Form, the
code after the CALL_FORM in the menu program unit does not execute when the
called Form is exited and control returns
to the calling Form. This behavior is because replacing the current menu destroys
any code that is executing in the menu being replaced.
CALL_FORM Example
/* Example 1:
** Call a form in query-only mode.
*/
BEGIN
CALL_FORM('empbrowser', no_hide, no_replace, query_only);
END;
/* Example 2:
** Call a form, pass a parameter list (if it exists)
*/
DECLARE
pl_id PARAMLIST;
theformname VARCHAR2(20);
BEGIN
theformname := 'addcust';
/* Try to lookup the 'TEMPDATA' parameter list */
pl_id := GET_PARAMETER_LIST('tempdata');
IF ID_NULL(pl_id) THEN
CALL_FORM(theformname);
ELSE
CALL_FORM(theformname,
hide,
no_replace,
no_query_only,
pl_id);
END IF;
CALL_FORM('lookcust', no_hide, do_replace, query_only);
END;