예제 #1
0
        /// <summary>
        /// 方法说明:新建卡片
        /// 作    者:jason.tang
        /// 完成时间:2013-03-05
        /// </summary>
        private void NewCard()
        {
            using (CardModuleChooseFrm chooseFrm = new CardModuleChooseFrm())
            {
                if (chooseFrm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    ProcessCardFrm frm = new ProcessCardFrm();
                    frm.ProcessFolderId = chooseFrm.ProcessFolderId;

                    if (tcDesignView.SelectedTab == tbMaterial)
                    {
                        frm.Name = string.Format("ProcessCardFrm-{0}-NAVG", Guid.NewGuid().ToString());
                    }
                    else
                    {
                        frm.Name = string.Format("ProcessCardFrm-{0}-NAVP", Guid.NewGuid().ToString());
                    }

                    if (!string.IsNullOrEmpty(chooseFrm.ProcessCardId))
                    {
                        //frm.TabText = chooseFrm.ProcessCardName;
                        //MainFrm.mainFrm.OpenModule(frm);
                        //bool result = frm.OpenCard(null, chooseFrm.ProcessCardId, true);
                        //if (!result)
                        //{
                        //    MainFrm.mainFrm.CloseModule(frm);
                        //}
                        //添加节点
                        ProcessCardBLL bll    = new ProcessCardBLL();
                        ProcessCard    card   = bll.GetProcessCard(new Guid(chooseFrm.ProcessCardId));
                        string         baseid = AddNodeInMaterial(card, frm.ProcessFolderId);
                        if (string.IsNullOrEmpty(baseid))
                        {
                            MessageBox.Show("该物料下已包含相同的卡片", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return;
                        }
                        MaterialCardRelation materialCardRelation = new MaterialCardRelation();
                        materialCardRelation.MaterialCardRelationId = Guid.NewGuid();
                        materialCardRelation.MaterialId             = new Guid(baseid);
                        materialCardRelation.ProcessCardId          = card.ID;
                        if (tcDesignView.SelectedTab == tbMaterial)
                        {
                            materialCardRelation.Type = 1;
                        }
                        else
                        {
                            materialCardRelation.Type = 2;
                        }
                        Kingdee.CAPP.BLL.MaterialCardRelationBLL.AddMaterialCardRelationData(materialCardRelation);

                        return;
                    }

                    #region 设置新增卡片Tab的TabText及Name

                    int        tag       = 1;
                    int        index     = 1;
                    List <int> listIndex = new List <int>();
                    foreach (DockContent form in this.MdiChildren)
                    {
                        if (form.Name.StartsWith("ProcessCardFrm") &&
                            form.TabText.StartsWith(chooseFrm.ModuleName))
                        {
                            tag = int.Parse(form.TabText.Substring(form.TabText.IndexOf("-") + 1));
                            listIndex.Add(tag);
                        }
                    }
                    listIndex.Sort();
                    foreach (var i in listIndex)
                    {
                        if (i > 1 && index == 1)
                        {
                            index = 1;
                            break;
                        }

                        if (index > 1)
                        {
                            if (i - listIndex[index - 2] > 1)
                            {
                                index = listIndex[index - 2] + 1;
                                break;
                            }
                        }
                        index++;
                    }
                    frm.TabText = string.Format("{0}-{1}", chooseFrm.ModuleName, index);


                    #endregion

                    frm.ModuleId   = chooseFrm.ModuleId;
                    frm.ModuleName = chooseFrm.ModuleName;
                    if (tcDesignView.SelectedTab == tbMaterial)
                    {
                        frm.ModuleObject = tvMaterialDesign.SelectedNode.Tag;
                        frm.PBomID       = string.Empty;
                    }
                    else
                    {
                        frm.ModuleObject = tvMaterialPBom.SelectedNode.Tag;
                        frm.PBomID       = tvMaterialPBom.SelectedNode.Name;
                    }
                    MainFrm.mainFrm.OpenModule(frm);
                }
            }
        }
예제 #2
0
        /// <summary>
        /// 物料树节点鼠标点击事件
        /// </summary>
        private void tvMaterial_MouseDown(object sender, MouseEventArgs e)
        {
            p = new Point(e.X, e.Y);
            TreeNode selectedNode = tvMaterialDesign.GetNodeAt(p);

            if (selectedNode == null)
            {
                return;
            }
            tvMaterialDesign.SelectedNode = selectedNode;
            selectedNode.SelectedImageKey = selectedNode.ImageKey;
            if (selectedNode.ImageKey == "card")
            {
                if (e.Button == System.Windows.Forms.MouseButtons.Left)
                {
                    //打开卡片
                    FormCollection collection = Application.OpenForms;
                    bool           isOpened   = false;
                    foreach (Form form in collection)
                    {
                        if (form.Name.EndsWith(selectedNode.Tag.ToString()))
                        {
                            isOpened = true;
                            ((ProcessCardFrm)form).TabText      = selectedNode.Text;
                            ((ProcessCardFrm)form).ModuleObject = selectedNode.Parent.Tag;
                            ((ProcessCardFrm)form).OpenCard(null, selectedNode.Tag.ToString(), false, false);
                            form.Select();
                        }
                    }

                    if (!isOpened)
                    {
                        ProcessCardFrm frm = new ProcessCardFrm();
                        frm.TabText      = selectedNode.Text;
                        frm.Name         = string.Format("ProcessCardFrm-{0}", selectedNode.Tag.ToString());
                        frm.ModuleObject = selectedNode.Parent.Tag;
                        MainFrm.mainFrm.OpenModule(frm);
                        bool result = frm.OpenCard(null, selectedNode.Tag.ToString(), false, false);
                        if (!result)
                        {
                            MainFrm.mainFrm.CloseModule(frm);
                        }
                    }
                }
                tsmnuNewCard.Visible            = false;
                tsmnuAddProcessPlanning.Visible = false;
                tsmnuMaterialQuota.Visible      = false;
                tsmnuChangeToTypical.Visible    = true;
                tsmnuDeleteCard.Visible         = true;
            }
            else
            {
                if (e.Button == System.Windows.Forms.MouseButtons.Left)
                {
                    GetMaterial(selectedNode.Tag);
                }
                tsmnuNewCard.Visible            = true; //selectedNode.Parent != null;
                tsmnuAddProcessPlanning.Visible = true; // selectedNode.Parent != null;

                tsmnuMaterialQuota.Visible = true;
                if (selectedNode.SelectedImageKey == "materialG" ||
                    selectedNode.SelectedImageKey == "materialS" ||
                    selectedNode.SelectedImageKey == "materialC")
                {
                    if (selectedNode.Nodes.Count > 0 && selectedNode.Nodes[0].ImageKey == "card")
                    {
                        tsmnuChangeToTypical.Visible = true;
                    }
                    else
                    {
                        tsmnuChangeToTypical.Visible = false;
                    }
                }
                else
                {
                    tsmnuChangeToTypical.Visible = false;
                }
                tsmnuDeleteCard.Visible = false;
            }
        }
예제 #3
0
        /// <summary>
        /// 产品树节点鼠标点击事件
        /// </summary>
        private void tvProduct_MouseDown(object sender, MouseEventArgs e)
        {
            p = new Point(e.X, e.Y);
            TreeNode selectedNode = tvMaterialPBom.GetNodeAt(p);

            if (selectedNode == null)
            {
                return;
            }
            selectedNode.SelectedImageKey = selectedNode.ImageKey;
            tvMaterialPBom.SelectedNode   = selectedNode;
            //if(e.Button == System.Windows.Forms.MouseButtons.Left)
            //    GetPbom(selectedNode.Tag);

            if (selectedNode.ImageKey == "card")
            {
                if (e.Button == System.Windows.Forms.MouseButtons.Left)
                {
                    //打开卡片
                    FormCollection collection = Application.OpenForms;
                    bool           isOpened   = false;

                    string pbomId = selectedNode.Parent.Parent.Tag.ToString();//改为自身
                    if (selectedNode.Parent.Tag.GetType() == typeof(MaterialModule))
                    {
                        pbomId = ((MaterialModule)selectedNode.Parent.Tag).pbomid;
                    }
                    foreach (Form form in collection)
                    {
                        if (form.Name.EndsWith(selectedNode.Tag.ToString()))
                        {
                            isOpened = true;
                            ((ProcessCardFrm)form).ModuleObject = selectedNode.Parent.Tag;
                            ((ProcessCardFrm)form).PBomID       = pbomId;
                            ((ProcessCardFrm)form).TabText      = selectedNode.Text;
                            ((ProcessCardFrm)form).OpenCard(null, selectedNode.Tag.ToString(), false, false);
                            form.Select();
                        }
                    }

                    if (!isOpened)
                    {
                        ProcessCardFrm frm = new ProcessCardFrm();
                        frm.ModuleObject = selectedNode.Parent.Tag;
                        frm.PBomID       = pbomId;
                        frm.TabText      = selectedNode.Text;
                        frm.Name         = string.Format("ProcessCardFrm-{0}", selectedNode.Tag.ToString());
                        MainFrm.mainFrm.OpenModule(frm);
                        bool result = frm.OpenCard(null, selectedNode.Tag.ToString(), false, false);
                        if (!result)
                        {
                            MainFrm.mainFrm.CloseModule(frm);
                        }
                    }
                }
                tsmnuNewCard.Visible            = false;
                tsmnuAddProcessPlanning.Visible = false;
                tsmnuMaterialQuota.Visible      = false;
                tsmnuChangeToTypical.Visible    = false;
                tsmnuDeleteCard.Visible         = true;
            }
            else
            {
                if (e.Button == System.Windows.Forms.MouseButtons.Left)
                {
                    GetMaterial(selectedNode.Tag);
                }
                //PBOM时根节点物料挂卡片有问题
                tsmnuNewCard.Visible            = true; //selectedNode.Parent != null;
                tsmnuAddProcessPlanning.Visible = true; // selectedNode.Parent != null;
                tsmnuMaterialQuota.Visible      = false;
                //if (selectedNode.SelectedImageKey == "materialG" ||
                //    selectedNode.SelectedImageKey == "materialS" ||
                //    selectedNode.SelectedImageKey == "materialC")
                //{
                //    if (selectedNode.Nodes.Count > 0 && selectedNode.Nodes[0].ImageKey == "card")
                //    {
                //        tsmnuChangeToTypical.Visible = true;
                //    }
                //    else
                //    {
                //        tsmnuChangeToTypical.Visible = false;
                //    }
                //}
                //else
                tsmnuChangeToTypical.Visible = false;
                tsmnuDeleteCard.Visible      = false;
            }
        }