|Top Previous Next|
To modify a Menu, go to Maintenance / Advanced Customizations / Menus. This opens the Menus Setup dialog, which lists all current Menu Definitions and has the typical functions for Adding, Inserting, Editing, etc. Note that while there are functions to Move Up and Move Down, a Menu Definition's position in the list does not usually affect the functionality. However if you create multiple definitions which modify the same menu, then the order in the list can determine the position of any new Menu Items added to the menu.
You can also Export one or more Menu Definitions to a text file, or Import Menu Definitions. This is primarily used for importing Menu Definitions created by the software provider, though it can also be used to transfer them between multiple databases.
Note: We refer to the entries as "Menu Definitions", but they're not actually "new" menus and don't even necessarily add anything to a menu (it could just modify the text of an existing selection in a menu). A Menu Definition is simply a list of "Items" to change in a specific menu, where each "Item" defines some change to the selected menu. The change could be to add a new selection in the menu which performs an "Action" when it's clicked, or the change might just be a command to remove or rename an existing selection, or it could be a complete sub-menu structure.
Menu Definitions cannot have duplicate names (this is primarily just to avoid confusion during setup). If you make a Copy of a Menu Definition, text like "(copy 1)" will be added to the name to make sure it's unique. Of course you can change this to be more appropriate. Duplicate checking for the names is not case-sensitive ("My Menu" is considered the same as "my menu").
Some common modifications are described below, to give you an idea of what can be done.
Removing menu selections (e.g. based on access levels)
While most functions in the menus can have their allowable access level changed through the standard Access Levels setup (Maintenance / Park Setup / Access Levels), this will only disable the menu selection rather than remove it from the menu. If you prefer to remove the disallowed functions, in order to simplify the menus for your users, then you can do it through the Menu Definitions.
To disable a menu selection, Add a Menu Definition for the appropriate Base menu. Then in the Edit Menu dialog, Add a Menu Item. In the Edit Menu Item dialog, select "Remove selection". Now select the option to find the selection by "ID/Command", and choose the menu selection form the large drop-down list.
Now set the Condition expression for when to remove the item. (If the Condition is blank, it will always remove it.) For instance if you only want to remove the selection if the current operator has a low access level (e.g. non-administrator), then you would enter a Condition expression like this (note that access levels are 0 to 5, where 0 = Guest and 5 is Administrator):
FieldValue(CurrentOpRec(),"Oper_Access") > 4
You can add as many Menu Items as needed in the same Menu Definition, to remove other items in the same menu.
Renaming menu items
If you prefer to use different text in the menus, either for clarification or to localize it to your language as much as possible, you can use the same procedure as described above for removing items. The only difference is that you would select "Rename selection" instead of "Remove selection" as the item type, and you would probably not have a Condition. Then just enter the new name in the Selection Name field.
Adding new functions to a menu
While the possible actions are limited by what can be defined with Expressions, there are many expression functions available for typical operations that will probably do anything you would want to do.
For instance there may be something you do often that takes several steps, which could be simplified by adding a custom Action to a menu which does it all at once. Or you might need to do some complex manipulations with the data on a regular basis and output that to a file -- this could be done with a Script, and adding a Menu Item somewhere to execute the Script makes it easy to perform the function whenever you need to. Likewise, you could read a file and process the data in a Script, such as reading the output of a phone system and adding the charges to the appropriate reservations.
Remember that right-click menus will have the context available for the expression defining the action, so for instance you can access the specific reservation that was clicked on. Top-level menus don't have any context to work with, but potentially some very complex actions could be created through scripts -- for instance to scan the entire database for a certain condition and show that information in a pop-up window or even a custom Dialog.
As a quick example, lets say that you want to add a command to the right-click menus to send a simple "Thank you for staying" E-mail (e.g. you could do this whenever you check them out).
First Add a Menu Definition for the appropriate Base menu -- in this case, "Right-click - Reservation, on other views" so it appears in the Departures tab view (you could do the same for the Rack right-click menu). Then in the Edit Menu dialog, Add a Menu Item. In the Edit Menu Item dialog, select "Execute Action". Enter an appropriate Selection Name, like "Send Thank-you E-mail".
Naturally this only makes sense if the customer has an E-mail address, and lets assume we also don't want this selection to appear in the menu until after the Check-out has been done. We can add this Condition so that the selection only appears when needed:
Cust:Cust_Email != "" AND Resv:Resv_Status = "Checked Out"
Now add the Action Expression, which will use the SendEmail function. (Note that this only works if you have the SMTP E-mail settings configured -- see Online Setup.) Obviously a real message would be longer than the one below, and you may want to include some fields from the reservation in it to personalize the message, but this should give you the general idea:
SendEmail(.T., "", "", Cust:Cust_First_Names, Cust:Cust_Email,
"Re: Your recent stay", "Thank you for staying with us. Come Again!")
Save that Menu Item and you'll be back in the Edit Menu Definition dialog. Here you might want to fill in the "Insert at position" field so that the item you just added doesn't go at the very bottom. For instance, a value of 8 should put it right after the Check Out function on the Departures tab. Then Save the menu definition.
Menu Items List
Editing Menu Items
Advanced Customizations Overview & other topics