Introduction
Main Menus
Main Menus do have their own module file. They are independent of form modules. It will be very useful to look at the code underlying the default menu used by the Forms Runtime program. This module was created by Oracle and it is used as a default main menu. The source file for this menu is stored in the FORMS directory in a file named “menudefs.mmb.” You can easily customized this file or use it as a basis for a new menu module.
Global Variable
You can use Global Variable to shares objects from one form to another. A Global variable is a binding variable that can be used by multiple Form Modules.
NAME_IN and COPY built-in subprogram
You need to use the NAME_IN built-in subprogram to read a value from a global variable or an indirectly referenced object and the COPY built-in subprogram to place a value into a global variable or an indirectly referenced object.
Always start with the default created menu, instead of creating a main menu from scratch.
Hands-On
Your client loves what you have done for them. But they would like you add the same functionality you did at Hands-On 12 to have it on the main menu of the “Customer Order” application.
You have been assigned to modify the main menu and add functions from Hands-On 12 to their window's main menu.
See Figure 15.
Your tasks are:
1- Modify the default main menu and add a menu item as “Data” and a sub-menu item as “Product Price” on the “Customer Order” Form.
2- Delete some unused menu items.
3- Pass product ID as a parameter between these two Form applications.
4- Run and test all user functional requirements.
You will learn how to: create or modify default main menu, use and assign global variable from one form to another, use global variable to execute query base on its parameter, create and use the "WHEN-NEW-FORM-INSTANCE" trigger, use tab canvas, use “object navigator,” use “Data Blocks,” use “Layout Editor,” use “Property Palette,” use “Run Form,” and “Execute Query.”
Figure 15
Open a Module
In the ‘Object Navigator’ window, highlight Forms. Go to the Main menu and choose “File,” select “Open” to open an existing form (customer_orders_V12)
from the “iself” folder.
Save a Module
Click on the “CUSTOMER_ORDERS_V12” form. The color changes to blue. The change its name and save the Form name as version 13 (customer_orders_v13). This way the original form is untouched.
We are going to change the application to invoke the “Product History Prices Data Entry” FORM from the application main menu.
Create a Menu
Highlight the “Menu” item in the "object navigator” and open the predefined “Oracle default menu” from the Forms folder. To save your programming time, you should start with default menu than you start from scratch. All menus have extension ‘mmb.’ You can search for all files that their extension are ‘mmb.’
Default Menu
Your default menu could be on different Oracle sub-directory version to version. On one version you may have it in
c:.mmb or
c:ii.mmb , etc.
Open the default menu.
Save a Menu
Save it as "cust_menu" in the “iself” folder. Highlight the menu name and click again to change the color to blue. Now, change the menu name to "Cust_menu.” And open its property palette. Notice that the name was changed. Then close the window.
Menu Editor
Double click on the "cust_menu" icon. In the Menu Editor, the whole menu structure layout will be displayed. Here you can change the layout and property of each item in the menu. You can add, remove, and change the sub-menus.
Menu Editor’s Toolbar
In the toolbar of the Menu Editor, you can find very useful icons. There are the ‘Create Right’ icon, ‘Create Down’ icon, and ‘Delete’ icon. If you move your cursor on them, a tooltip will display their functions.
Next to sub-menus, you will find the Down Arrow, and Up Arrow icon. Clicking on the "Up Arrow" icon collapses each menu list item. Clicking on the "Down Arrow" icon expands each menu list item.
Create a sub-menu
Select the “Field” sub-menu, and then click on the "Create Right" icon. That will create a new sub-menu next to the Field sub-menu. Change its name to "Data."
Create an item in a sub-menu
Click on the "Create Down" icon to create an item under new sub-menu (Data). Change "new item" to "Product History Prices," then right click on it and open its property palette.
This is another way to change the item name and other properties. Close the window.
PL/SQL Editor
Right click on the ‘Product History Prices’ and open the "PL/SQL Editor."
In the PL/SQL Editor, write a PL/SQL block to store the “product id” item into the “global product id” item and then call the new version of the “Product Price Data Entry” Form from the iself folder.
(PL/SQL Editor)
:GLOBAL.prodid := NAME_IN(‘item.prodid’);
OPEN_FORM(‘c:_de_v02’);
Compile a PL/SQL block
Compile and close the window.
Delete an item from a Main Menu
To delete an item, select the item and then click on the ‘Delete’ icon in the toolbar. When you delete an item on the menu, you should confirm your action.
Delete the “Edit” sub-menu item.
Try to delete some other sub-menu items if not needed.
Exit Menu Editor
Close the menu editor.
Highlight "cust_menu," save the changes.
Compile a Menu
Then go to File > Administration > Compile File to compile the menu. The compile module is saved in the same folder of its source module.
Open a Form’s property palette
Now, go back to the CUSTOMER_ORDERS_V13 form.
Right click on the “Customer Orders” Form and open its Property Palette to assign the new menu.
In the Form Property Palette, change the ‘Menu Module’ value to c:_menu. Close the window.
Run the application
Run the Form.
Notice that the Main menu was changed. The “Data” sub-menu was added.
Click on “Execute query.” Navigate through the application Form. Highlight a product id, and then click on the "Product Data Entry” button.
Close the window.
Do the same by using the Main menu option.
You should get the same result as push button.
Now, close the windows and save the changes.
Questions:
Q: What is a main menu in the Form Builder?
Q: Are the main menus independent of form? How?
Q: What is the default main menu name?
Q: How do you use NAME_IN and COPY build-in subprogram?
Q: How do you create a default main menu?
Q: How do you modify a default main menu?
Q: Your client loves what you have done for them. But they would like you add the same functionality you did at Hands-On 12 to have it on the main menu of the “Customer Order” application.
You have been assigned to modify the main menu and add functions from Hands-On 12 to their window's main menu.
See Figure 15.
Your tasks are:
1- Modify the default main menu and add a menu item as “Data” and a sub-menu item as “Product Price” on the “Customer Order” Form.
2- Delete some unused menu items.
3- Pass product ID as a parameter between these two Form applications.
4- Run and test all user functional requirements.
No comments:
Post a Comment