In multiple-form applications, it is common to create a front-end form that exists only to display the application's main menu. Items on the main menu can then invoke individual form modules that perform specific application functions. To create a master menu that invokes other forms, first create a form module with no blocks or items, then attach your master menu module to that form.
When items on a master menu invoke forms with OPEN_FORM, each independent form has its own menu. You cannot specify that an independent form use the current menu.
When items on the master menu invoke forms with the NEW_FORM Built-in procedure, the menu module attached to each form is loaded when that form is invoked. When all of the forms in an application share the same menu, reloading the same menu each time a new form is invoked (and potentially querying the database each time) may be unacceptable.
To avoid this problem, create a start-up form that exists only to call the front-end form (and its master menu) by executing CALL_FORM with the NO_REPLACE parameter. With this design, Oracle Forms does not reload the menu each time a different form is invoked from the main menu. Since the front-end form is itself a called form, any form modules invoked with the NEW_FORM procedure automatically inherit the NO_REPLACE restriction, and run under the master menu.
When items on the master menu invoke forms with the CALL_FORM Built-in procedure, you can specify whether called forms should inherit the master menu with the switch_menu parameter (DO_REPLACE or NO_REPLACE).