cancel
Showing results for 
Search instead for 
Did you mean: 

Menu

Former Member
0 Kudos

Hi

   We have created Menu it has 5 options . Under 1 option i want to create sub-option. How it can  be done.

Thanks

Accepted Solutions (0)

Answers (1)

Answers (1)

maik_delly
Active Contributor
0 Kudos

Hi Sunny,

if I get you correctly you want a menu structure like that :


private void AddMenus()

{

    AddMenuItem(SAPbouiCOM.BoMenuType.mt_POPUP, -1, "Mainmenu", "MYMenu", "43520");

    AddMenuItem(SAPbouiCOM.BoMenuType.mt_STRING, -1, "Item1", "MYMenu1", "MYMenu");

    AddMenuItem(SAPbouiCOM.BoMenuType.mt_POPUP, -1, "Item2", "MYMenu2", "MYMenu");//-> MenuType is PopUp

    AddMenuItem(SAPbouiCOM.BoMenuType.mt_STRING, -1, "Item2_1", "MyMenu2_1", "MYMenu2");// the parent is your popup

    AddMenuItem(SAPbouiCOM.BoMenuType.mt_STRING, -1, "Item2_1", "MyMenu2_2", "MYMenu2");

    AddMenuItem(SAPbouiCOM.BoMenuType.mt_STRING, -1, "Item2_1", "MyMenu2_3", "MYMenu2");

    AddMenuItem(SAPbouiCOM.BoMenuType.mt_STRING, -1, "Item3", "MyMenu3", "MYMenu");

    AddMenuItem(SAPbouiCOM.BoMenuType.mt_STRING, -1, "Item4", "MyMenu4", "MYMenu");

    AddMenuItem(SAPbouiCOM.BoMenuType.mt_STRING, -1, "Item5", "MyMenu5", "MYMenu");

}

private void AddMenuItem(SAPbouiCOM.BoMenuType boMenuType, int Position, String String, String UID, String Parent)

{

    if (SBO_Application.Menus.Exists(UID))

        return;

    SAPbouiCOM.MenuCreationParams oCreParams = ((SAPbouiCOM.MenuCreationParams)SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_MenuCreationParams));

    oCreParams.Type = boMenuType;

    oCreParams.Position = Position;

    oCreParams.String = String;

    oCreParams.UniqueID = UID;

    SBO_Application.Menus.Item(Parent).SubMenus.AddEx(oCreParams);

}

}

regards,

Maik

Former Member
0 Kudos

Hi

  I have created Menu like this > I want Sub-Options to be created under Maintain Transactions.

Dim oMenus As SAPbouiCOM.Menus

        Dim oMenuItem As SAPbouiCOM.MenuItem

        oMenus = SBO_Application.Menus

        Dim oCreationPackage As SAPbouiCOM.MenuCreationParams

        oCreationPackage = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_MenuCreationParams)

        oMenuItem = SBO_Application.Menus.Item("43520")

  • oCreationPackage.Type = SAPbouiCOM.BoMenuType.mt_POPUP

        oCreationPackage.UniqueID = "MyMenu"

        oCreationPackage.String = "My Module"

        oCreationPackage.Enabled = True

        oCreationPackage.Position = 15

        oMenus = oMenuItem.SubMenus

        Try ' If the manu already exists this code will fail

            oMenus.AddEx(oCreationPackage)

            oMenuItem = SBO_Application.Menus.Item("MyMenu")

            oMenus = oMenuItem.SubMenus

            oCreationPackage.Type = SAPbouiCOM.BoMenuType.mt_STRING

            oCreationPackage.UniqueID = "MySubMenu"

            oCreationPackage.String = "Maintain Master"

            oMenus.AddEx(oCreationPackage)

            oCreationPackage.Type = SAPbouiCOM.BoMenuType.mt_STRING

            oCreationPackage.UniqueID = "MySubMenu0"

            oCreationPackage.String = "Maintain Transactions"

            oMenus.AddEx(oCreationPackage)

        Catch er As Exception

        End Try

Thanks

maik_delly
Active Contributor
0 Kudos

Hi Sunny,

your "Maintain Transactions" menuitem must be from type mt_POPUP and your subitems must be added using this as a parent.

My example is quite forward, you just need to adapt it to your needs .

This should be it :


Private Sub AddMenus()

    AddMenuItem(SAPbouiCOM.BoMenuType.mt_POPUP, 15, "My Module", "MyMenu", "43520")

    AddMenuItem(SAPbouiCOM.BoMenuType.mt_STRING, -1, "Maintain Master", "MySubMenu", "MyMenu")

    AddMenuItem(SAPbouiCOM.BoMenuType.mt_POPUP, -1, "Maintain Transactions", "MySubMenu0", "MyMenu")

    AddMenuItem(SAPbouiCOM.BoMenuType.mt_STRING, -1, "Maintain Transactions_1", "MyMenu2_1", "MySubMenu0")

    AddMenuItem(SAPbouiCOM.BoMenuType.mt_STRING, -1, "Maintain Transactions_2", "MyMenu2_2", "MySubMenu0")

    AddMenuItem(SAPbouiCOM.BoMenuType.mt_STRING, -1, "Maintain Transactions_3", "MyMenu2_3", "MySubMenu0")

End Sub

Private Sub AddMenuItem(boMenuType As SAPbouiCOM.BoMenuType, Position As Integer, [String] As [String], UID As [String], Parent As [String])

    If SBO_Application.Menus.Exists(UID) Then

        Return

    End If

    Dim oCreParams As SAPbouiCOM.MenuCreationParams = DirectCast(SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_MenuCreationParams), SAPbouiCOM.MenuCreationParams)

    oCreParams.Type = boMenuType

    oCreParams.Position = Position

    oCreParams.[String] = [String]

    oCreParams.UniqueID = UID

    SBO_Application.Menus.Item(Parent).SubMenus.AddEx(oCreParams)

End Sub

regards,

Maik