You could, of course, find a very useful source of inspiration in Microsoft Office, as it is somewhere standard (standard?).
Depending on the type of form you are using, I assume that you can set some basic rules where, for example, the data entry forms will have a basic menu, such as validate \ quit \ refresh \ abandon \ print \ export, to excel \ filter \ order by \ etc. Such menus (let them be called " Standard ") will be ideally accessible in the "File" and "Edit" and / or "View" menus, adhering to standard Office menus (even Firefox uses this terminology).
I would advise you to always display this standard menu, even if some of these actions are not always available for such or similar forms. Imagine that the data contained in one of your forms cannot be updated under certain circumstances: you can still display the disabled version of the "validate" icon, and not make it invisible. This will definitely simplify the understanding of the end user.
Once this standard list of menus / options is installed, I think you will come to the identification of the other two main "menus", " More " and " Actions " menus:
- Parts allow you to navigate through forms, access / display subforms / subsets of data, such as Items in a purchase order.
- The action allows you to perform certain actions on the data, for example, to issue a purchase order.
Your various menus should be accessible through the command bar and context-sensitive shortcuts. Parameters such as “filter” may be available at the associated control level, while actions such as “Emit PO” are available only at the record / form level.
People or a group of people should be allowed or not to open forms and / or perform certain actions in these forms
To manage menus and rights, our applications have a “menu file” by default on the client side and both tables “userGroup-forms” and “userGroup-actions” on the server side.
- user group groups . and forms and watchlist \ change permissions of each group. Table
- userGroup-actions holds true when the group has the right to perform a specific action
When connected to the database, the user is identified, and his local menu file is updated to give him the appropriate viewing / action rights.
We are clearly here in an object-oriented approach, right?