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"); }