public static bool switchToView(IXContainerControl container, IKeyForm Link, CMenuItem mnu, ref UpdateData data, List <UpdateData> injectedatas) { if (mnu == null) { return(false); } if (mnu.LinkValue == null || mnu.LinkValue.Trim().Length == 0) { return(false); } Type tFrm = Appasmb.GetType(string.Format(mnu.LinkValue, GlobalShare.SystemAppInfo.AssemName)); if (true) { if (tFrm == null) { MessageBox.Show(string.Format("未找到类{0}!", mnu.LinkValue)); return(false); } } if (mnu.linkType == LinkType.WebPage) { if (AllModules.ContainsKey(mnu.MnuId)) { container.CurrMainControl = AllModules[mnu.MnuId]; return(true); } } Ifrm_Model objInst; if (container == null) { return(false); } //container.Controls.Clear(); //container.Controls.Clear();//清除所有控件 if (mnu.Params == null || mnu.Params.Trim().Length == 0) { object obj = Activator.CreateInstance(tFrm, null); objInst = obj as Ifrm_Model; } else { objInst = Activator.CreateInstance(tFrm, mnu.Params) as Ifrm_Model; } if (objInst == null) { return(false); } objInst.FromMenu = mnu; objInst.strUid = mnu.strUid; objInst.SetDock(XPlatformDockStyle.Fill); if (objInst.lb_Title != null) { objInst.lb_Title.Text = mnu.MnuName; } objInst.GridSource = mnu.GridSource; objInst.DetailSource = mnu.DetailSrouce; objInst.UseSubItems = mnu.UseSubItems; objInst.strKey = mnu.Key; if (mnu.Module.Trim().Length > 0) { objInst.strModule = mnu.Module; } if (mnu.Screen.Trim().Length > 0) { objInst.strScreen = mnu.Screen; } if (mnu.Target.Trim().Length > 0) { objInst.strTarget = mnu.Target; } objInst.strKey = mnu.Key; objInst.Link = Link; if (objInst is IMutliDataInterface) { (objInst as IMutliDataInterface).InjectedDatas = injectedatas; } if (objInst is ITranslateableInterFace && (Link is IKeyForm || Link == null)) { FillTranData(Link, objInst as ITranslateableInterFace, ref mnu, ref data); (objInst as ITranslateableInterFace).NeedUpdateData = data; } objInst.TranData = mnu.TranDataMapping; //菜单数据下传 //if (objInst.InjectedDatas == null) //{ // objInst.InjectedDatas = new List<UpdateData>(); //} //if(data != null) //{ // objInst.InjectedDatas.Add(data); //} if (container != null) { container.Controls_Add(objInst); objInst.ToTopLevel(); } if (!AllModules.ContainsKey(mnu.MnuId)) { AllModules.Add(mnu.MnuId, objInst); } container.CurrMainControl = objInst; switch (mnu.linkType) { case LinkType.WebPage: //winform专用 { break; } case LinkType.Dialog: { if (container is IXPanel) //容器是ixpanel 并且 { if ((container as IXPanel).InForm) //容器是在最外层main/mdi_main { } else { break; } } else //如果是form { //自加载 break; } IXForm frmobj = CreateForm(objInst.ControlType); frmobj.InitForm(mnu, SystemIcon); frmobj.Controls_Add(objInst); frmobj.ShowIXDialog(); break; } case LinkType.Form: { break; } case LinkType.UserControl: { break; } case LinkType.PrintToPDF: { if (container is IXPanel) //容器是ixpanel 并且 { if ((container as IXPanel).InForm) //容器是在最外层main/mdi_main { break; } else { } } else //如果是form { //自加载 break; } IXForm frmobj = CreateForm(objInst.ControlType); frmobj.InitForm(mnu, SystemIcon); frmobj.Controls_Add(objInst); frmobj.ShowIXDialog(); break; } default: { break; } } return(true); }
public static bool ShowDialoger(IXPanel container, IKeyForm Link, CMenuItem mnu, ref UpdateData data, bool MultiSelected) { if (mnu == null) { return(false); } if (mnu.LinkValue == null || mnu.LinkValue.Trim().Length == 0) { return(false); } Type tFrm = Appasmb.GetType(string.Format(mnu.LinkValue, GlobalShare.SystemAppInfo.AssemName)); if (mnu.linkType != LinkType.WebPage) { if (tFrm == null) { MessageBox.Show(string.Format("未找到类{0}!", mnu.LinkValue)); return(false); } } switch (mnu.linkType) { case LinkType.WebPage: { if (container != null) //support the tab frame { ////WebBrowser wb = new WebBrowser(); ////wb.Url = new Uri(mnu.LinkValue); ////container.ControlsAdd(wb); ////wb.Dock = DockStyle.Fill; break; } WebForm wbfrm = null; if (ShowWebForms.ContainsKey(mnu.MnuId)) { wbfrm = ShowWebForms[mnu.MnuId]; } else { wbfrm = new WebForm(mnu.MnuId, mnu.LinkValue); } wbfrm.ShowDialog(ParentForm); break; } case LinkType.Dialog: { Ifrm_Model objInst; if (mnu.Params == null || mnu.Params.Trim().Length == 0) { objInst = Activator.CreateInstance(tFrm, null) as Ifrm_Model; } else { objInst = Activator.CreateInstance(tFrm, mnu.Params) as Ifrm_Model; } if (objInst == null) { return(false); } objInst.FromMenu = mnu; objInst.SetDock(XPlatformDockStyle.Fill); objInst.strUid = mnu.strUid; objInst.FromMenu = mnu; objInst.lb_Title.Text = mnu.MnuName; objInst.GridSource = mnu.GridSource; objInst.DetailSource = mnu.DetailSrouce; if (mnu.Module.Trim().Length > 0) { objInst.strModule = mnu.Module; } if (mnu.Screen.Trim().Length > 0) { objInst.strScreen = mnu.Screen; } if (mnu.Target.Trim().Length > 0) { objInst.strTarget = mnu.Target; } objInst.strKey = mnu.Key; objInst.Link = Link; IXForm frm = CreateForm(objInst.ControlType); frm.InitForm(mnu, SystemIcon); //objInst.AllowClose = false; if (objInst is ITranslateableInterFace && (Link is IKeyForm || Link == null)) { FillTranData(Link, objInst as ITranslateableInterFace, ref mnu, ref data); } objInst.TranData = mnu.TranDataMapping; objInst.FromMenu = mnu; if (objInst is ITranslateableInterFace) { data.ReqType = DataRequestType.Update; if (mnu.Params == null || mnu.Params.Trim().Length == 0) { data.ReqType = DataRequestType.Add; data.Updated = true; } (objInst as ITranslateableInterFace).NeedUpdateData = data; } frm.Controls_Add(objInst); if (!frm.ShowIXDialog()) { return(false); } if (objInst is ITranslateableInterFace) { data = (objInst as ITranslateableInterFace).NeedUpdateData; //传出 } break; } case LinkType.Select: { Dlg_CommModel objInst; if (mnu.Params == null || mnu.Params.Trim().Length == 0) { objInst = Activator.CreateInstance(tFrm, null) as Dlg_CommModel; } else { objInst = Activator.CreateInstance(tFrm, mnu.Params) as Dlg_CommModel; } if (objInst == null) { return(false); } objInst.FromMenu = mnu; objInst.strUid = mnu.strUid; //objInst.Dock = DockStyle.Fill; //objInst.lb_Title.Text = mnu.MnuName; objInst.MultiSelect = MultiSelected; objInst.GridSource = mnu.GridSource; objInst.DetailSource = mnu.DetailSrouce; if (mnu.Module.Trim().Length > 0) { objInst.strModule = mnu.Module; } if (mnu.Screen.Trim().Length > 0) { objInst.strScreen = mnu.Screen; } if (mnu.Target.Trim().Length > 0) { objInst.strTarget = mnu.Target; } objInst.strKey = mnu.Key; objInst.Link = Link; if (container != null) { objInst.Icon = SystemIcon; } objInst.Text = mnu.Title; objInst.MaximizeBox = false; objInst.MinimizeBox = false; objInst.FormBorderStyle = FormBorderStyle.FixedDialog; objInst.StartPosition = FormStartPosition.CenterParent; //objInst.AllowClose = false; //(objInst as Dlg_CommModel).ReturnData = data;//传入 if (objInst is ITranslateableInterFace) { FillTranData(Link, objInst as ITranslateableInterFace, ref mnu, ref data, false); } if (objInst.ShowDialog() != DialogResult.Yes) { return(false); } if (objInst is ITranslateableInterFace && Link is IKeyForm) { data = (objInst as ITranslateableInterFace).NeedUpdateData; //传出 } break; } case LinkType.Form: { Ifrm_Model objInst; if (mnu.Params == null || mnu.Params.Trim().Length == 0) { objInst = Activator.CreateInstance(tFrm, null) as Ifrm_Model; } else { objInst = Activator.CreateInstance(tFrm, mnu.Params) as Ifrm_Model; } if (objInst == null) { return(false); } objInst.FromMenu = mnu; objInst.strUid = mnu.strUid; objInst.SetDock(XPlatformDockStyle.Fill); objInst.lb_Title.Text = mnu.MnuName; objInst.GridSource = mnu.GridSource; objInst.DetailSource = mnu.DetailSrouce; if (mnu.Module.Trim().Length > 0) { objInst.strModule = mnu.Module; } if (mnu.Screen.Trim().Length > 0) { objInst.strScreen = mnu.Screen; } if (mnu.Target.Trim().Length > 0) { objInst.strTarget = mnu.Target; } objInst.strKey = mnu.Key; objInst.Link = Link; IXForm frm = CreateForm(objInst.ControlType); frm.InitForm(mnu, SystemIcon); //objInst.AllowClose = false; if (objInst is ITranslateableInterFace && (Link is IKeyForm || Link == null)) { FillTranData(Link, objInst as ITranslateableInterFace, ref mnu, ref data); //(objInst as ITranslateableInterFace).NeedUpdateData = data; } frm.Controls_Add(objInst); frm.ShowIXDialog(); if (objInst is ISaveableInterFace) { data = (objInst as ISaveableInterFace).NeedUpdateData; //传出 } break; } case LinkType.UserControl: { container.Controls_Clear(); //清除所有控件 Ifrm_Model objInst; if (mnu.Params == null || mnu.Params.Trim().Length == 0) { objInst = Activator.CreateInstance(tFrm, null) as Ifrm_Model; } else { objInst = Activator.CreateInstance(tFrm, mnu.Params) as Ifrm_Model; } if (objInst == null) { return(false); } objInst.FromMenu = mnu; objInst.strUid = mnu.strUid; objInst.SetDock(XPlatformDockStyle.Fill); objInst.lb_Title.Text = mnu.MnuName; objInst.GridSource = mnu.GridSource; objInst.DetailSource = mnu.DetailSrouce; objInst.strKey = mnu.Key; if (mnu.Module.Trim().Length > 0) { objInst.strModule = mnu.Module; } if (mnu.Screen.Trim().Length > 0) { objInst.strScreen = mnu.Screen; } if (mnu.Target.Trim().Length > 0) { objInst.strTarget = mnu.Target; } objInst.strKey = mnu.Key; objInst.Link = Link; if (objInst is ITranslateableInterFace && (Link is IKeyForm || Link == null)) { FillTranData(Link, objInst as ITranslateableInterFace, ref mnu, ref data); } container.Controls_Add(objInst); objInst.ToTopLevel(); //objInst.Focus(); break; } default: { break; } } return(true); }