Пример #1
0
        protected override string DoIt()
        {
            MModuleWindow mWindow = new MModuleWindow(GetCtx(), GetRecord_ID(), null);

            _windowNo = mWindow.GetAD_Window_ID();

            if (_windowNo == 0)
            {
                return(Msg.GetMsg(GetCtx(), "VIS_WindowNotFound"));
            }

            MWindow window = new MWindow(GetCtx(), _windowNo, null);

            MTab[] tabs = window.GetTabs(false, null);
            if (tabs == null || tabs.Length == 0)
            {
                return(Msg.GetMsg(GetCtx(), "VIS_TabNotFound"));
            }

            string      sql = "select AD_Tab_ID,AD_ModuleTab_ID FROM AD_ModuleTab WHERE isActive='Y' AND ad_modulewindow_id=" + mWindow.GetAD_ModuleWindow_ID();
            IDataReader idr = DB.ExecuteReader(sql);
            DataTable   dt  = new DataTable();

            dt.Load(idr);
            idr.Close();

            Dictionary <int, int> existingTabs = new Dictionary <int, int>();

            foreach (DataRow dr in dt.Rows)
            {
                existingTabs[Convert.ToInt32(dr["AD_Tab_ID"])] = Convert.ToInt32(dr["AD_ModuleTab_ID"]);
            }

            for (int i = 0; i < tabs.Length; i++)
            {
                MModuleTab mTab = null;
                if (existingTabs.ContainsKey(tabs[i].GetAD_Tab_ID()))
                {
                    mTab = new MModuleTab(GetCtx(), existingTabs[tabs[i].GetAD_Tab_ID()], null);
                    InsertORUpdateFields(tabs[i].GetAD_Tab_ID(), mTab);
                }
                else
                {
                    mTab = new MModuleTab(GetCtx(), 0, null);

                    mTab.SetAD_Tab_ID(tabs[i].GetAD_Tab_ID());
                    mTab.SetAD_ModuleWindow_ID(GetRecord_ID());
                    if (mTab.Save())
                    {
                        InsertORUpdateFields(tabs[i].GetAD_Tab_ID(), mTab);
                    }
                }
            }

            return("Done");
        }