Пример #1
0
        public static IXForm CreateForm(PlatformControlType pct)
        {
            IXForm ret = null;

            switch (pct)
            {
            case PlatformControlType.Web:
            {
                break;
            }

            case PlatformControlType.WinForm:
            default:
            {
                ret = new XWinForm_Form();
                break;
            }
            }
            return(ret);
        }
Пример #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);
        }
Пример #3
0
        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);
        }