Oct 12, 2016

Hide Modules through X++

public class HideModuleClass
{
}

public static void Hide_Module()
{
    #define.MainMenuPath("\\Menus\\MainMenu")
    container           _NavigationButtons;
    CompanyInfo         _CompanyInfo;
    TreeNode            _MainMenu;
    TreeNodeIterator    _MenuItem;
    TreeNode            _MenuNode;
    xNavPane            _xNavPane;
    str                 _AOTName;
    int                 _i = 1;
    _MainMenu   = treenode::findNode(#MainMenuPath);
    _MenuItem   = _MainMenu.AOTiterator();
    _MenuNode   = _MenuItem.next();
    _CompanyInfo = CompanyInfo::findDataArea(curext());
    while(_MenuNode != null)
    {
        _AOTName = _MenuNode.AOTname();
        if(_AOTName == "AccountsPayable")
        {
            _NavigationButtons = conins(_NavigationButtons, _i, "0" + _AOTName);
        }
        else
        {
            _NavigationButtons = conins(_NavigationButtons, _i, "1" + _AOTName);
        }
        _i++;
        _MenuNode = _MenuItem.next();
    }
    infolog.navpane().setcurrmenubuttons(_NavigationButtons);
}

SysDataAreaSelect(Form)-SwitchCompany(Method)

if (NewWorkspace)
    {
        InfoLog.createWorkspaceWindow();
    }
    else
    {
        if (infolog.navPane())
        {
            InfoLog.navPane().loadStartupButtons();
            Infolog.navPane().refreshFavorites(infolog.navPane().selectedFavoriteGroup(),xInfo::currentWorkspaceNum());
            //----------------------------------->
            //Date : 2016-10-10
            //Developer : 박병욱
            HideModuleClass::Hide_Module();
            //-----------------------------------<
        }
        else
        {
            infolog.updateCurrentCompany();
            //----------------------------------->
            //Date : 2016-10-10
            //Developer : 박병욱
            HideModuleClass::Hide_Module();
            //-----------------------------------<
        }
    }

Application(Class)-setDefaultCompany(Method)
    setDefaultCompanyCalled = true;
    //----------------------------------->
    //Date : 2016-10-10
    //Developer : 박병욱
    if (infolog.navPane())
    {
        InfoLog.navPane().loadStartupButtons();
        Infolog.navPane().refreshFavorites(infolog.navPane().selectedFavoriteGroup(),xInfo::currentWorkspaceNum());
        HideModuleClass::Hide_Module();
    }
    //-----------------------------------<
    return ret;
}

Info(Class)-startupPost(Method)

/*
No SYS code must exist in this method
*/
void startupPost()
{
    //----------------------------------->
    //Date : 2016-10-12
    //Developer : 박병욱
    HideModuleClass::Hide_Module();
    //-----------------------------------<
}

SysNavPaneOptionsDiaalog(Form)-loadlist(Method)

void loadlist(container currButtons)
{
    int i;
    str buttonState;
    str buttonInfo;
    FormListItem item;
    str aotName;
    boolean hideButton;
    ListView.deleteAll();
    hiddenMenuItems = conNull();
    for (i= (conlen(currButtons) -1); i >= 1 ; i-=2)
    {
        buttonInfo = conpeek(currButtons,i);
        buttonState = substr(buttonInfo,0,1);
        aotName = substr(buttonInfo,2,strlen(buttonInfo)-1);
        hideButton = (RetailSMB::IsRetailSMBEnabled() && aotName != menuStr(RetailSMB))
                    || (!RetailSMB::IsRetailSMBEnabled() && (aotName == menuStr(RetailSMB)));
        if(!hideButton)
        {
            // the button label is a i+1
            // BP deviation documented
            //----------------------------------->
            //Date : 2016-10-10
            //Developer : 박병욱
            if (aotName != "AccountsPayable")
            {
                item = new FormListItem(conpeek(currButtons,i+1),0,aotName);
                // this adds the item to the top of the list
                ListView.addItem(item);
                // get the item so that we can set the state
                item = listView.getItem(0);
                if (buttonState==#Zero)
                {
                    item.stateChecked(false);
                }
                else
                {
                    item.stateChecked(true);
                }
                // set the item so that we maintain state
                listView.setItem(item);
            }
             //-----------------------------------<
        }
        else
        {
            hiddenMenuItems += aotName;
        }
        // </RETAIL>
    }
    ListView.setColumnWidth(0,ListView.widthValue());
    if (ListView.getCount() > 0)
    {
        item = ListView.getItem(0);
        item.stateSelected(true);
        item.stateFocus(true);
        ListView.setItem(item);
    }
    ListView.setFocus();
}

No comments:

Post a Comment