/// <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); } } }
/// <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; } }
/// <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; } }