Ejemplo n.º 1
0
        private static void AddMenuItems()
        {
            try
            {
                sbo_application.Forms.GetFormByTypeAndCount(169, 1).Freeze(true);

                SAPbouiCOM.MenuItem MenuItemModules = sbo_application.Menus.Item(SAPMenu.MenuModules);

                int position = MenuItemModules.SubMenus.Count;

                SAPbouiCOM.MenuItem menuItem = MenuItemModules.SubMenus.Add(UserMenu.MenuPrincipal, $"{AddOnName} {Assembly.GetEntryAssembly().GetName().Version.ToString().Replace(".0.0", "")}", SAPbouiCOM.BoMenuType.mt_POPUP, position);

                menuItem.SubMenus.Add(UserMenu.Configuracion, "Configuracion", SAPbouiCOM.BoMenuType.mt_STRING, 0);
                menuItem.SubMenus.Add(UserMenu.MenuRecepcion, "Recepcion", SAPbouiCOM.BoMenuType.mt_POPUP, ++position);
                menuItem.SubMenus.Add(UserMenu.MenuCalidad, "Calidad", SAPbouiCOM.BoMenuType.mt_POPUP, ++position);
                menuItem.SubMenus.Add(UserMenu.MenuProduccion, "Produccion", SAPbouiCOM.BoMenuType.mt_POPUP, ++position);
                menuItem.SubMenus.Add(UserMenu.MenuComex, "Comex", SAPbouiCOM.BoMenuType.mt_POPUP, ++position);

                foreach (var assembly in CommonFunctions.GetAssemblies(AppDomain.CurrentDomain.BaseDirectory))
                {
                    foreach (Type t in Assembly.LoadFrom(assembly.FullName).GetTypes())
                    {
                        if (t.GetInterface("ISAPBusinessOne") != null)
                        {
                            try
                            {
                                ISAPBusinessOne pluginclass = Activator.CreateInstance(t) as ISAPBusinessOne;

                                string fatherMenu      = pluginclass.FatherMenu();
                                string menuUID         = pluginclass.MenuUID();
                                string captionMenuItem = pluginclass.CaptionMenuItem();

                                if (!string.IsNullOrEmpty(menuUID))
                                {
                                    if (MenuItemModules.SubMenus.Exists(fatherMenu))
                                    {
                                        SAPbouiCOM.MenuItem fatherMenuItem = MenuItemModules.SubMenus.Item(fatherMenu);
                                        position = fatherMenuItem.SubMenus.Count;
                                        fatherMenuItem.SubMenus.Add(menuUID, captionMenuItem, SAPbouiCOM.BoMenuType.mt_STRING, position);
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                sbo_application.StatusBar.SetText(ex.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                sbo_application.StatusBar.SetText(ex.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error);
            }
            finally
            {
                sbo_application.Forms.GetFormByTypeAndCount(169, 1).Freeze(false);
                sbo_application.Forms.GetFormByTypeAndCount(169, 1).Update();
            }
        }
Ejemplo n.º 2
0
        private static void SBO_Application_RightClickEvent(ref SAPbouiCOM.ContextMenuInfo oContextMenuInfo, out bool bBubbleEvent)
        {
            bBubbleEvent = true;

            try
            {
                foreach (var assembly in CommonFunctions.GetAssemblies(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "plugins")))
                {
                    foreach (Type type in Assembly.LoadFrom(assembly.FullName).GetTypes().Where(i => i.GetInterface("ISAPBusinessOne") != null))
                    {
                        try
                        {
                            ISAPBusinessOne pluginclass = (ISAPBusinessOne)Activator.CreateInstance(type);
                            pluginclass.SBO_Application_RightClickEvent(ref oContextMenuInfo, sbo_company, ref sbo_application, out bBubbleEvent);
                            if (!bBubbleEvent)
                            {
                                return;
                            }
                        }
                        catch (Exception ex)
                        {
                            CommonFunctions.LogFile(LogFile, ex.ToString());
                            sbo_application.MessageBox(ex.Message);
                            //sbo_application.StatusBar.SetText(ex.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                sbo_application.MessageBox(ex.Message);
            }
        }
Ejemplo n.º 3
0
        private static void SBO_Application_ItemEvent(string formUID, ref SAPbouiCOM.ItemEvent oItemEvent, out bool bBubbleEvent)
        {
            bBubbleEvent = true;

            try
            {
                foreach (var assembly in CommonFunctions.GetAssemblies(AppDomain.CurrentDomain.BaseDirectory))
                {
                    foreach (Type type in Assembly.LoadFrom(assembly.FullName).GetTypes().Where(i => i.GetInterface("ISAPBusinessOne") != null))
                    {
                        try
                        {
                            ISAPBusinessOne pluginclass = (ISAPBusinessOne)Activator.CreateInstance(type);
                            //ReconnectSL();
                            pluginclass.SBO_Application_ItemEvent(formUID, ref oItemEvent, sbo_company, ref sbo_application, out bBubbleEvent, sessionId);
                            if (!bBubbleEvent)
                            {
                                return;
                            }
                        }
                        catch (Exception ex)
                        {
                            CommonFunctions.LogFile(LogFile, ex.ToString());
                            sbo_application.MessageBox(ex.Message);
                            bBubbleEvent = false;
                            //sbo_application.StatusBar.SetText(ex.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                sbo_application.MessageBox(ex.Message);
            }
        }