Creating the topmenu dynamically
Topmenus can be created at runtime by creating the corresponding XML representation in the AUI tree.
This example shows how to create a topmenu in all forms by using
the default initialization function and the
om.DomNode class:
CALL ui.Form.setDefaultInitializer("myinit")
OPEN FORM f1 FROM "form1"
DISPLAY FORM f1
...
FUNCTION myinit(form)
DEFINE form ui.Form
DEFINE f om.DomNode
LET f = form.getNode()
...
END FUNCTIONAfter getting the DOM node of the form, create a node with the
"
TopMenu" tag name: DEFINE tm om.DomNode
LET tm = f.createChild("TopMenu")For each Topmenu group, create a subnode with the "
TopMenuGroup"
tag name and set the attributes to define the group: DEFINE tmg om.DomNode
LET tmg = tm.createChild("TopMenuGroup")
CALL tmg.setAttribute("text","Reports")For each Topmenu option, create a sub-node in a group node with
the "
TopMenuCommand" tag name and set the attributes
to define the option:DEFINE tmi om.DomNode
LET tmi = tmg.createChild("TopMenuCommand")
CALL tmi.setAttribute("name","report")
CALL tmi.setAttribute("text","Order report")
CALL tmi.setAttribute("comment","Orders entered today")
CALL tmi.setAttribute("image","smiley")If needed, you can create a "
TopMenuSeparator"
node inside a group, to separate menu options: DEFINE tms om.DomNode
LET tms = tmg.createChild("TopMenuSeparator")