Ejemplo n.º 1
0
        public void AddTabPages(XtraUserControl uct, byte typeControl, string tenTab)
        {
            for (int i = 0; i < tabHienThi.TabPages.Count; i++)
            {
                if (tabHienThi.TabPages[i].Contains(uct))
                {
                    tabHienThi.SelectedTabPage = tabHienThi.TabPages[i];
                    return;
                }
            }
            XtraTabPage tab = new XtraTabPage();

            typePages.Add(typeControl);
            tab.Name = uct.Name;
            tab.Size = tabHienThi.Size;
            tab.Text = tenTab;
            tabHienThi.TabPages.Add(tab);
            tabHienThi.SelectedTabPage = tab;
            uct.Dock = DockStyle.Fill;
            tab.Controls.Add(uct);
            uct.Focus();
        }
Ejemplo n.º 2
0
        private static void OpenMenuTap(MenuTabInfo info, bool finishDelivery = false)
        {
            if (info == null)
            {
                return;
            }

            foreach (XtraTabPage page in tabControl.TabPages)
            {
                MenuTabInfo curInfo = page.Tag as MenuTabInfo;
                if (curInfo == null)
                {
                    continue;
                }
                if (curInfo.menuId == info.menuId)
                {
                    tabControl.SelectedTabPage = page;
                    if (curInfo.form != null && (curInfo.form.Name == "COM_Home" || curInfo.form.Name == "SOD_Order" || curInfo.form.Name == "SOD_Pickup" || curInfo.form.Name == "SOD_Delivery" || curInfo.form.Name == "SOD_Return"))
                    {
                        curInfo.form.Focus();
                    }

                    XtraUserControl form = curInfo.form;
                    if (form == null)
                    {
                        return;
                    }

                    MethodInfo mInfo = null;
                    if (!String.IsNullOrEmpty(ord_no))
                    {
                        PropertyInfo ordNo = form.GetType().GetProperty("ordNo");
                        ordNo.SetValue(form, ord_no);

                        if (curInfo.form.Name == "SOD_Delivery" && finishDelivery)
                        {
                            bolConfirmMessage = true;
                            mInfo             = form.GetType().GetMethod("InitFromDoubleClickAndHandle", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null);
                        }
                        else
                        {
                            mInfo = form.GetType().GetMethod("InitFromDoubleClick", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null);
                        }

                        ord_no = String.Empty;
                    }
                    else if (!(String.IsNullOrEmpty(pick_ord_yn) && String.IsNullOrEmpty(pick_yn) &&
                               String.IsNullOrEmpty(delv_ord_yn) && String.IsNullOrEmpty(delv_yn)))
                    {
                        PropertyInfo pickOrdYn = form.GetType().GetProperty("pickOrdYn");
                        pickOrdYn.SetValue(form, pick_ord_yn);
                        PropertyInfo pickYn = form.GetType().GetProperty("pickYn");
                        pickYn.SetValue(form, pick_yn);
                        PropertyInfo delvOrdYn = form.GetType().GetProperty("delvOrdYn");
                        delvOrdYn.SetValue(form, delv_ord_yn);
                        PropertyInfo delvYn = form.GetType().GetProperty("delvYn");
                        delvYn.SetValue(form, delv_yn);

                        mInfo = form.GetType().GetMethod("InitFromDoubleClick", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null);
                    }
                    else
                    {
                        mInfo = form.GetType().GetMethod("Search", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null);
                    }

                    if (mInfo != null)
                    {
                        mInfo.Invoke(form, null);
                    }
                    return;
                }
            }

            if (!info.canOpen)
            {
                return;
            }

            try
            {
                XtraTabPage page = new XtraTabPage();
                page.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
                page.Text   = info.menuText[AccessDB.GetConfig("lang")];
                page.Tag    = info;
                page.Font   = new System.Drawing.Font("맑은 고딕", 9F);
                page.Appearance.Header.Font           = new System.Drawing.Font("맑은 고딕", 9F);
                page.Appearance.HeaderActive.Font     = new System.Drawing.Font(page.Font.FontFamily.Name, page.Font.Size, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
                page.Appearance.HeaderDisabled.Font   = new System.Drawing.Font("맑은 고딕", 9F);
                page.Appearance.HeaderHotTracked.Font = new System.Drawing.Font("맑은 고딕", 9F);
                page.Appearance.PageClient.Font       = new System.Drawing.Font("맑은 고딕", 9F);
                page.ShowCloseButton = info.haveClose ? DevExpress.Utils.DefaultBoolean.True : DevExpress.Utils.DefaultBoolean.False;


                tabControl.TabPages.Add(page);
                tabControl.SelectedTabPage = page;

                string dllPath = Application.StartupPath + @"\" + info.dllName + @".dll";
                Type   type    = null;
                try
                {
                    Assembly asm = Assembly.LoadFrom(dllPath);
                    type = asm.GetType(info.dllName + "." + info.className);
                }
                catch (Exception er)
                {
                    type = null;
                }

                if (type == null)
                {
                    return;
                }

                XtraUserControl form = null;
                bolConfirmMessage = true;

                if (!String.IsNullOrEmpty(ord_no))
                {
                    form   = Activator.CreateInstance(type, ord_no) as XtraUserControl;
                    ord_no = String.Empty;
                }
                else if (!(String.IsNullOrEmpty(pick_ord_yn) && String.IsNullOrEmpty(pick_yn) &&
                           String.IsNullOrEmpty(delv_ord_yn) && String.IsNullOrEmpty(delv_yn)))
                {
                    form = Activator.CreateInstance(type, pick_ord_yn, pick_yn, delv_ord_yn, delv_yn) as XtraUserControl;
                }
                else
                {
                    form = Activator.CreateInstance(type) as XtraUserControl;
                }

                if (form == null)
                {
                    return;
                }
                info.form    = form;
                form.Tag     = info;
                form.Visible = false;


                page.Controls.Add(form);
                form.Dock = DockStyle.Fill;

                form.Visible = true;
                if (form.Name == "COM_Home" || form.Name == "SOD_Order" || form.Name == "SOD_Pickup" || form.Name == "SOD_Delivery" || form.Name == "SOD_Return")
                {
                    form.Focus();
                }

                //MethodInfo mInfo = null;
                //if (!String.IsNullOrEmpty(ord_no))
                //{
                //    PropertyInfo ordNo = form.GetType().GetProperty("ordNo");
                //    ordNo.SetValue(form, ord_no);
                //
                //    if (form.Name == "SOD_Delivery" && finishDelivery) mInfo = form.GetType().GetMethod("InitFromDoubleClickAndHandle", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null);
                //    else mInfo = form.GetType().GetMethod("InitFromDoubleClick", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null);
                //    ord_no = String.Empty;
                //
                //}
                //else if (!(String.IsNullOrEmpty(pick_ord_yn) && String.IsNullOrEmpty(pick_yn)
                //  && String.IsNullOrEmpty(delv_ord_yn) && String.IsNullOrEmpty(delv_yn)))
                //{
                //    PropertyInfo pickOrdYn = form.GetType().GetProperty("pickOrdYn");
                //    pickOrdYn.SetValue(form, pick_ord_yn);
                //    PropertyInfo pickYn = form.GetType().GetProperty("pickYn");
                //    pickYn.SetValue(form, pick_yn);
                //    PropertyInfo delvOrdYn = form.GetType().GetProperty("delvOrdYn");
                //    delvOrdYn.SetValue(form, delv_ord_yn);
                //    PropertyInfo delvYn = form.GetType().GetProperty("delvYn");
                //    delvYn.SetValue(form, delv_yn);
                //
                //    mInfo = form.GetType().GetMethod("InitFromDoubleClick", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null);
                //
                //}
                //else
                //{
                //    mInfo = form.GetType().GetMethod("Search", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[0], null);
                //
                //}
                //
                //if (mInfo != null)
                //{
                //    mInfo.Invoke(form, null);
                //}
            }
            catch (Exception err)
            {
            }
        }
Ejemplo n.º 3
0
        private void ModuleSelect(Type t, NavBarLinkEventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;
            try
            {
                if (t == null)
                {
                    return;
                }
                object ui = Activator.CreateInstance(t);
                if (ui == null)
                {
                    return;
                }
                ChucNang cn = e.Link.Item.Tag as ChucNang;

                switch (t.Name)
                {
                case "ucTuDienDuLieu":
                    ((Modules.ucTuDienDuLieu)ui).ChucNang = cn;
                    break;
                }

                switch (t.BaseType.Name)
                {
                case "XtraForm":
                    XtraForm xForm = (XtraForm)ui;
                    foreach (Form fr in frmMain.Instance.xtraTabbedMdiManager.MdiParent.MdiChildren)
                    {
                        if (fr.Name == string.Format("{0}{1}", t.Name, cn.ModuleID))
                        {
                            fr.Focus();
                            return;
                        }
                    }
                    xForm.Name += cn.ModuleID;
                    InvokeMethod(t, xForm, e);
                    if (!string.IsNullOrEmpty(cn.LoaiChucNang.MaLoai))
                    {
                        if (cn.LoaiChucNang.MaLoai == "Popup")
                        {
                            xForm.Tag  = cn;
                            xForm.Text = e.Link.Caption;
                            xForm.ShowDialog();
                        }
                        else
                        {
                            xForm.MdiParent = frmMain.Instance;
                            xForm.Tag       = cn;
                            xForm.Text      = e.Link.Caption;
                            xForm.Show();
                            xForm.Focus();
                        }
                    }
                    else
                    {
                        xForm.MdiParent = frmMain.Instance;
                        xForm.Tag       = cn;
                        xForm.Text      = e.Link.Caption;
                        xForm.Show();
                        xForm.Focus();
                    }
                    break;

                case "Form":
                    Form form = (Form)ui;
                    foreach (Form fr in frmMain.Instance.xtraTabbedMdiManager.MdiParent.MdiChildren)
                    {
                        if (fr.Name == string.Format("{0}{1}", t.Name, cn.ModuleID))
                        {
                            fr.Focus();
                            return;
                        }
                    }
                    form.Name += cn.ModuleID;
                    InvokeMethod(t, form, e);
                    if (!string.IsNullOrEmpty(cn.LoaiChucNang.MaLoai))
                    {
                        if (cn.LoaiChucNang.MaLoai == "Popup")
                        {
                            form.Tag  = cn;
                            form.Text = e.Link.Caption;
                            form.ShowDialog();
                        }
                        else
                        {
                            form.MdiParent = frmMain.Instance;
                            form.Tag       = cn;
                            form.Text      = e.Link.Caption;
                            form.Show();
                            form.Focus();
                        }
                    }
                    else
                    {
                        form.MdiParent = frmMain.Instance;
                        form.Tag       = cn;
                        form.Text      = e.Link.Caption;
                        form.Show();
                        form.Focus();
                    }
                    break;

                case "XtraUserControl":
                    if (AppContainer != null)
                    {
                        if (!AppContainer.Controls.ContainsKey(string.Format("{0}{1}", t.Name, cn.ModuleID)))
                        {
                            XtraUserControl xc = (XtraUserControl)ui;
                            ////Phan quyen tung control
                            //bool result = false;
                            //DataServices.TaiKhoan.KiemTraPhanQuyenControl(UserInfo.UserID, xc.Name, ref result);
                            //if (result)
                            //{
                            //    MethodInfo mi = FindMethod(t, "KhongDuocPhepCapNhat", result.ToString());
                            //    if (mi != null)
                            //        mi.Invoke(xc, new string[] { result.ToString() });
                            //}

                            if (!AppContainer.Controls.Contains(xc))
                            {
                                xc.Name           = string.Format("{0}{1}", t.Name, cn.ModuleID);
                                xc.Dock           = DockStyle.Fill;
                                xc.Tag            = cn;
                                AppContainer.Text = e.Link.Caption;
                                InvokeMethod(t, xc, e);
                                AppContainer.Controls.Add(xc);
                                xc.BringToFront();
                                xc.Focus();
                            }
                        }
                        else
                        {
                            AppContainer.Text = e.Link.Caption;
                            AppContainer.Controls[AppContainer.Controls.IndexOfKey(string.Format("{0}{1}", t.Name, cn.ModuleID))].BringToFront();
                            AppContainer.Controls[AppContainer.Controls.IndexOfKey(string.Format("{0}{1}", t.Name, cn.ModuleID))].Focus();
                        }
                    }
                    break;

                case "UserControl":
                    Cursor.Current = Cursors.WaitCursor;
                    if (AppContainer != null)
                    {
                        if (!AppContainer.Controls.ContainsKey(string.Format("{0}{1}", t.Name, cn.ModuleID)))
                        {
                            UserControl uc = Activator.CreateInstance(t) as UserControl;
                            if (uc != null)
                            {
                                if (!AppContainer.Controls.Contains(uc))
                                {
                                    uc.Name           = string.Format("{0}{1}", t.Name, cn.ModuleID);
                                    uc.Dock           = DockStyle.Fill;
                                    uc.Tag            = cn;
                                    AppContainer.Text = e.Link.Caption;
                                    InvokeMethod(t, uc, e);
                                    AppContainer.Controls.Add(uc);
                                    uc.BringToFront();
                                    uc.Focus();
                                }
                            }
                        }
                        else
                        {
                            AppContainer.Text = e.Link.Caption;
                            AppContainer.Controls[AppContainer.Controls.IndexOfKey(string.Format("{0}{1}", t.Name, cn.ModuleID))].BringToFront();
                            AppContainer.Controls[AppContainer.Controls.IndexOfKey(string.Format("{0}{1}", t.Name, cn.ModuleID))].Focus();
                        }
                    }
                    Cursor.Current = Cursors.Default;
                    break;

                case "Object":
                    Object obj = Activator.CreateInstance(t) as Object;
                    if (obj != null)
                    {
                        InvokeMethod(t, obj, e);
                    }
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message + "\n" + ex.StackTrace, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            Cursor.Current = Cursors.Default;
        }