/// <summary> /// 打开卡片 /// </summary> private void tvProcessProcedure_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { TreeNode node = e.Node; if (node.ImageKey != "planning") { return; } WeifenLuo.WinFormsUI.Docking.DockContent content = MainFrm.mainFrm.CheckContentIsOpened(e.Node.Tag.ToString()); if (content != null) { MainFrm.mainFrm.OpenModule(content); return; } Guid planningId = new Guid(e.Node.Tag.ToString()); List <ProcessCard> listProcessCard = PlanningCardRelationBLL.GetProcessCardListByProcessPlanningId(planningId); if (listProcessCard.Count > 0) { ProcessPlanningDetailFrm form = new ProcessPlanningDetailFrm(); form.FormText = string.Format("{0}-{1}", e.Node.Text, e.Node.Tag.ToString()); form.ProcessPlanningCards = listProcessCard; MainFrm.mainFrm.OpenPlanningModule(form); } }
/// <summary> /// set current node new add process card /// </summary> /// <param name="processCardModuleList"></param> public void SetCurrentNodeNewAddProcessCard(List <ProcessCardModule> processCardModuleList) { TreeNode selectedNode = tvProcessProcedure.GetNodeAt(p); Guid processPlanningId = (Guid)selectedNode.Tag; ProcessCardModuleBLL processCardModuleBLL = new ProcessCardModuleBLL(); ProcessCardBLL processCardBLL = new ProcessCardBLL(); try { int i = selectedNode.Nodes.Count + 1; /// 增加卡片 foreach (var pcm in processCardModuleList) { string name = string.Format(pcm.Name + "-{0}", i); ProcessCard processCard = new ProcessCard(); processCard.ID = Guid.NewGuid(); processCard.Name = name; //Guid.NewGuid().ToString(); processCard.CardModuleId = pcm.Id; processCard.Card = processCardModuleBLL.GetCardModule(pcm.Id); processCard.CreateTime = DateTime.Now; processCard.IsCheckOut = false; processCard.IsDelete = 0; processCard.UpdateTime = DateTime.Now; Guid id = processCardBLL.InsertProcessCard(processCard); ///保存工艺规程和卡片映射 PlanningCardRelationBLL.AddProcesPlanningData( new PlanningCardRelation() { ProcessPlanningId = processPlanningId, PlanningCardRelationId = Guid.NewGuid(), ProcessCardId = id, CardSort = 0 }); TreeNode newNode = new TreeNode(); newNode.Tag = string.Format("{0}@{1}", id, pcm.Id); newNode.Name = i.ToString(); // id.ToString(); newNode.Text = name; newNode.ImageKey = "card"; newNode.Collapse(); selectedNode.Nodes.Add(newNode); i++; } } catch (Exception ex) { MessageBox.Show(ex.Message); } tvProcessProcedure.Refresh(); //tvProcessProcedure.TreeViewNodeSorter = new Kingdee.CAPP.UI.Common.NodeSorter(); }
/// <summary> /// 保存工艺规程和卡片 /// </summary> /// <param name="?"></param> /// <param name="processPlanning"></param> public void SaveProcessPlanning( List <ProcessCardModule> processCardModules, ProcessPlanning processPlanning) { ProcessCardModuleBLL processCardModuleBLL = new ProcessCardModuleBLL(); try { /// 保存工艺规程 ProcessPlanningBLL.AddProcesPlanning(processPlanning); //保存文件夹 ProcessVersion version = new ProcessVersion(); version.FolderId = tvProcessCard.SelectedNode.Tag.ToString(); version.BaseId = processPlanning.ProcessPlanningId.ToString(); version.Name = processPlanning.Name; version.CategoryId = "A9FE1F2B-730A-4DA7-8323-557C664B9734"; Kingdee.CAPP.BLL.ProcessCardBLL.InsertProcessVersion(version, null); /// 保存工艺卡片 ProcessCardBLL processCardBLL = new ProcessCardBLL(); ProcessCard = new List <Model.ProcessCard>(); int i = 1; foreach (var pcm in processCardModules) { ProcessCard processCard = new ProcessCard(); //processCard.ID = Guid.NewGuid(); processCard.Name = string.Format(processPlanning.Name + "-{0}", i); //Guid.NewGuid().ToString(); processCard.CardModuleId = pcm.Id; processCard.Card = processCardModuleBLL.GetCardModule(pcm.Id); processCard.CreateTime = DateTime.Now; processCard.IsCheckOut = false; processCard.IsDelete = 0; processCard.UpdateTime = DateTime.Now; Guid id = processCardBLL.InsertProcessCard(processCard); processCard.ID = id; ProcessCard.Add(processCard); ///保存工艺规程和卡片映射 PlanningCardRelationBLL.AddProcesPlanningData( new PlanningCardRelation() { ProcessPlanningId = processPlanning.ProcessPlanningId, PlanningCardRelationId = Guid.NewGuid(), ProcessCardId = id, CardSort = 0 }); i++; } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
/// <summary> /// Show process card module by process planning Id /// 根据工艺规程Id,显示卡片 /// </summary> /// <param name="processPlanningId"></param> public void ShowProcessCardByProcessPlanningId(Guid processPlanningId, TreeNode node) { List <ProcessCard> processCardModules = PlanningCardRelationBLL.GetProcessCardListByProcessPlanningId(processPlanningId); foreach (var pc in processCardModules) { TreeNode processCardNode = new TreeNode(); processCardNode.Text = pc.Name; processCardNode.Tag = string.Format("{0}@{1}", pc.ID, pc.CardModuleId); processCardNode.ImageKey = "card"; processCardNode.Name = pc.CardSort.ToString(); processCardNode.Collapse(); node.Nodes.Add(processCardNode); } }
/// <summary> /// 方法说明:根据BusinessId删除模版或文件夹 /// 作 者:jason.tang /// 完成时间:2013-07-24 /// </summary> /// <param name="Id">业务ID</param> private void RemoveTreeNode(TreeNode currentNode) { if (currentNode == null) { return; } bool result = false; if (currentNode.ImageKey == "planning") { Guid planningId = new Guid(currentNode.Tag.ToString()); result = ProcessPlanningBLL.DeletePlanningById(planningId); ProcessCardBLL.DeleteProcessVersion(planningId.ToString(), currentNode.Parent.Tag.ToString()); } else { int splitIndex = currentNode.Tag.ToString().IndexOf("@"); Guid cardid = new Guid(currentNode.Tag.ToString().Substring(0, splitIndex)); Guid planningId = new Guid(currentNode.Parent.Tag.ToString()); result = PlanningCardRelationBLL.DeleteRelationByCardId(cardid, planningId); } if (result) { if (currentNode.Parent != null && !string.IsNullOrEmpty(currentNode.Parent.ImageKey)) { tvProcessProcedure.SelectedNode = currentNode.Parent; tvProcessProcedure.SelectedImageKey = currentNode.Parent.ImageKey; } else { tvProcessProcedure.SelectedNode = tvProcessProcedure.Nodes[0]; /// 如果选中的节点为空,默认为卡片 tvProcessProcedure.SelectedImageKey = tvProcessProcedure.Nodes[0].ImageKey; } //Remove treeview tvProcessProcedure.Nodes.Remove(currentNode); tvProcessProcedure.SelectedNode.Expand(); } }
private void btnConfirm_Click(object sender, EventArgs e) { if (tvProcessProcedure.SelectedNode.SelectedImageKey == "card") { string tag = tvProcessProcedure.SelectedNode.Parent.Tag.ToString(); string processPlanningId = tag.Substring(0, tag.IndexOf("@")); string foderId = tag.Substring(tag.IndexOf("@") + 1); List <ProcessCard> processCards = PlanningCardRelationBLL.GetProcessCardListByProcessPlanningId(new Guid(processPlanningId)); string cardId = tvProcessProcedure.SelectedNode.Tag.ToString().Substring(0, tvProcessProcedure.SelectedNode.Tag.ToString().IndexOf("@")); ProcessCard card = processCards.FirstOrDefault(c => c.ID == new Guid(cardId)); if (card != null) { //添加节点 string baseid = MaterialStructureNavigate.materialNavigateFrm.AddNodeInMaterial(card, foderId); if (string.IsNullOrEmpty(baseid)) { return; } MaterialCardRelation materialCardRelation = new MaterialCardRelation(); materialCardRelation.MaterialCardRelationId = Guid.NewGuid(); materialCardRelation.MaterialId = new Guid(baseid); materialCardRelation.ProcessCardId = card.ID; materialCardRelation.Type = ViewType; Kingdee.CAPP.BLL.MaterialCardRelationBLL.AddMaterialCardRelationData(materialCardRelation); } } else if (tvProcessProcedure.SelectedNode.SelectedImageKey == "planning") { string tag = tvProcessProcedure.SelectedNode.Tag.ToString(); string processPlanningId = tag.Substring(0, tag.IndexOf("@")); string foderId = tag.Substring(tag.IndexOf("@") + 1); List <ProcessCard> processCards = PlanningCardRelationBLL.GetProcessCardListByProcessPlanningId(new Guid(processPlanningId)); if (processCards.Count > 0) { foreach (ProcessCard card in processCards) { //添加节点 string baseid = MaterialStructureNavigate.materialNavigateFrm.AddNodeInMaterial(card, foderId); if (string.IsNullOrEmpty(baseid)) { continue; } MaterialCardRelation materialCardRelation = new MaterialCardRelation(); materialCardRelation.MaterialCardRelationId = Guid.NewGuid(); materialCardRelation.MaterialId = new Guid(baseid); materialCardRelation.ProcessCardId = card.ID; materialCardRelation.Type = ViewType; Kingdee.CAPP.BLL.MaterialCardRelationBLL.AddMaterialCardRelationData(materialCardRelation); } } } this.DialogResult = System.Windows.Forms.DialogResult.OK; }
private void UpdateCardRelation(object planningid, object prevPlanningid, object cardid) { PlanningCardRelationBLL.UpdateProcessPlanningData(planningid, prevPlanningid, cardid); }
private void tvProcessProcedure_DragDrop(object sender, DragEventArgs e) { //获得拖放中的节点 TreeNode moveNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode"); TreeNode parentNode = moveNode.Parent; ///如果该节点时规程,则不允许进行拖动 if (moveNode.SelectedImageKey == "planning") { return; } //根据鼠标坐标确定要移动到的目标节点 Point pt; TreeNode targeNode; pt = ((TreeView)(sender)).PointToClient(new Point(e.X, e.Y)); targeNode = this.tvProcessProcedure.GetNodeAt(pt); TreeNode targeParent = targeNode.Parent; //如果目标节点无子节点则添加为同级节点,反之添加到下级节点的未端 TreeNode NewMoveNode = (TreeNode)moveNode.Clone(); if (targeNode.Parent == moveNode.Parent) { tvProcessProcedure.BeginUpdate(); PlanningCardRelationBLL.ChangeTwoCardSortOrder(moveNode.Tag, moveNode.Name, targeNode.Tag, targeNode.Name, parentNode.Tag.ToString()); parentNode.Nodes.Clear(); ShowProcessCardByProcessPlanningId(new Guid(parentNode.Tag.ToString()), parentNode); //tvProcessProcedure.TreeViewNodeSorter = new Kingdee.CAPP.UI.Common.NodeSorter(); tvProcessProcedure.EndUpdate(); tvProcessProcedure.Focus(); tvProcessProcedure.SelectedNode = targeParent; if (tvProcessProcedure.SelectedNode != null) { tvProcessProcedure.SelectedNode.EnsureVisible(); } return; } object planningid = null; object prevPlanningid = moveNode.Parent.Tag; if (targeNode.Nodes.Count == 0) { if (targeNode.ImageKey == "card") { targeNode.Parent.Nodes.Insert(targeNode.Index, NewMoveNode); planningid = targeNode.Parent.Tag; } else if (targeNode.ImageKey == "planning") { targeNode.Nodes.Insert(targeNode.Index, NewMoveNode); planningid = targeNode.Tag; targeNode.Expand(); } } else { targeNode.Nodes.Insert(targeNode.Nodes.Count, NewMoveNode); planningid = targeNode.Tag; } int splitIndex = NewMoveNode.Tag.ToString().IndexOf("@"); string cardid = NewMoveNode.Tag.ToString().Substring(0, splitIndex); //更新数据库内节点的从属关系 //UpdateCardRelation(planningid, prevPlanningid, NewMoveNode.Tag); UpdateCardRelation(planningid, prevPlanningid, cardid); tvProcessProcedure.SelectedNode = NewMoveNode; //展开目标节点,便于显示拖放效果 targeNode.Expand(); //移除拖放的节点 moveNode.Remove(); // tvProcessProcedure.TreeViewNodeSorter = new Kingdee.CAPP.UI.Common.NodeSorter(); tvProcessProcedure.Focus(); tvProcessProcedure.SelectedNode = targeParent; if (tvProcessProcedure.SelectedNode != null) { tvProcessProcedure.SelectedNode.EnsureVisible(); } }