Exits the current form and enters the indicated form. The calling form is terminated as the parent form. If the calling form had been called by a higher form, Oracle Forms keeps the higher call active and treats it as a call to the new form. Oracle Forms releases memory (such as database cursors) that the terminated form was using.
Oracle Forms runs the new form with the same Runform options as the parent form. If the parent form was a called form, Oracle Forms runs the new form with the same options as the parent form.
PROCEDURE NEW_FORM
(formmodule_name VARCHAR2);
PROCEDURE NEW_FORM
(formmodule_name VARCHAR2,
rollback_mode NUMBER);
PROCEDURE NEW_FORM
(formmodule_name VARCHAR2,
rollback_mode NUMBER,
query_mode NUMBER);
PROCEDURE NEW_FORM
(formmodule_name VARCHAR2,
rollback_mode NUMBER,
query_mode NUMBER,
data_mode NUMBER);
PROCEDURE NEW_FORM
(formmodule_name VARCHAR2,
rollback_mode NUMBER,
query_mode NUMBER,
paramlist_id PARAMLIST);
PROCEDURE NEW_FORM
(formmodule_name VARCHAR2,
rollback_mode NUMBER,
query_mode NUMBER,
paramlist_name VARCHAR2);
PROCEDURE NEW_FORM
(formmodule_name VARCHAR2,
rollback_mode NUMBER,
query_mode NUMBER,
data_mode NUMBER,
paramlist_id PARAMLIST);
PROCEDURE NEW_FORM
(formmodule_name VARCHAR2,
rollback_mode NUMBER,
query_mode NUMBER,
data_mode NUMBER,
paramlist_name VARCHAR2);
Built-in Type restricted procedure
Enter Query Mode no
/* Create a generic procedure that will invoke the
** formname passed-in using the method indicated by
** the 'newform' and 'queryonly' parameters.
*/
PROCEDURE GENERIC_CALL(formname VARCHAR2,
newform VARCHAR2,
queryonly VARCHAR2) IS
msglvl VARCHAR2(2);
error_occurred EXCEPTION;
BEGIN
/*
** Remember the current message level and temporarily
** set it to 10 to suppress errors if an incorrect
** formname is called
*/
msglvl := :SYSTEM.MESSAGE_LEVEL;
:SYSTEM.MESSAGE_LEVEL := '10';
IF newform = 'Y' THEN
IF queryonly = 'Y' THEN
NEW_FORM(formname, to_savepoint, query_only);
ELSIF queryonly = 'N' THEN
NEW_FORM(formname);
END IF;
ELSIF newform = 'N' THEN
IF queryonly = 'Y' THEN
CALL_FORM(formname, hide, no_replace, query_only);
ELSIF queryonly = 'N' THEN
CALL_FORM(formname);
END IF;
END IF;
IF NOT form_success THEN
MESSAGE('Cannot call form '||UPPER(formname)||
'. Please contact your SysAdmin for help.');
RAISE error_occurred;
END IF;
:SYSTEM.MESSAGE_LEVEL := msglvl;
EXCEPTION
WHEN error_occurred THEN
:SYSTEM.MESSAGE_LEVEL := msglvl;
RAISE form_trigger_failure;
END;