Andromeda automatically builds a menu out of the modules and tables in your database. In addition, you can add specific menu entries that go to custom pages. The rules for building a menu are:
If a user does not have the "permsel" permission on a table, they will not see it on the menu.
For custom menu entries, we set the "permsel" permission to control who can see it on the menu, even though there is no real table to SELECT out of. We do this so the permissions work the same way as tables.
The "nomenu" property can be used to remove a table from the menu for all users. If this property is applied to a module for a group, that group will not see that module at all (unless the nomenu property is reset for at least one table entry).
See the page Making Hello World a Menu Entry for more information on how to put custom programs onto the menu.
The YAML example shown below is taken from the Andromeda Demo application, and has been purged of all information except the module and table definitions, to show how these affect the menu:
module ordering:
description: Orders
uisort: 100
module gl:
description: Ledger
uisort: 500
table orders:
module: ordering
description: Orders
uisort: 100
table orderlines:
module: ordering
uisort: 110
nomenu: "Y"
x6childwrites: detail
table customers:
module: ordering
description: Customers
uisort: 200
spaceafter: "Y"
table items:
module: ordering
uisort: 300
description: Items
spaceafter: "Y"
x6profile: twosides
table custtypes:
module: ordering
uisort: 900
x6profile: grid
description: Customer Types
table taxauths:
module: ordering
uisort: 910
x6profile: grid
description: Tax Authorities
table glaccounts:
description: Chart of Accounts
module: gl
uisort: 100
x6profile: grid
table glactypes:
description: Account Types
module: gl
uisort: 900
x6profile: grid
x6all: "Y"
This definition produces a menu that looks like this: