Beispiel #1
0
 public static bool switchToView(IXContainerControl container, IKeyForm Link, CMenuItem mnu, ref UpdateData data)
 {
     return(switchToView(container, Link, mnu, ref data, null));
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 public static bool switchToView(IXContainerControl container, CMenuItem mnu)
 {
     return(switchToView(container, null, mnu));
 }