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;