CALL_FORM built-in - Oracle Forms

By

121535
Runs an indicated form while keeping the parent form active. Form Builder runs the called form with the same Runform preferences as the parent form. When the called form is exited Form Builder 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.)  Form Builder will hide the calling form before drawing the called form.
    NO_HIDE  Form Builder will display the called form without hiding the calling form.
switch_menu    NO_REPLACE (The default.)  Form Builder will keep the default menu module of the calling form active for the called form.
    DO_REPLACE Form Builder 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.)  Form Builder 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 Form Builder 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, Form
       
    Builder will not share data between forms that have identical libraries attached (at design time).
    SHARE_LIBRARY_DATA  At runtime, Form Builder will share data between forms that have identical libraries attached (at design time).
paramlist_id    The unique ID Form Builder 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
Form Builder ignores the query_mode parameter when the calling form is running in

QUERY_ONLY mode. Form Builder 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.)
 
CALL_FORM examples


/* 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;