/// <summary> /// 初始化树列表子节点 /// </summary> /// <param name="node"></param> /// <param name="p_objectId"></param> private void treeCreater(TreeListViewItem node, string p_objectId) { DataTable dt_parts = m_StructService.GetStructPartList(p_objectId); int len = dt_parts.Rows.Count; for (int i = 0; i < len; i++) { TreeListViewItem item = new TreeListViewItem(dt_parts.Rows[i]["PRODUCTNO"].ToString(), 0); node.Items.Add(item); //item.Expand(); item.SubItems.Add(dt_parts.Rows[i]["VERSION"].ToString()); item.SubItems.Add(dt_parts.Rows[i]["ASSONUM"].ToString()); item.SubItems.Add(dt_parts.Rows[i]["MODELTYPE"].ToString()); item.SubItems.Add(dt_parts.Rows[i]["SORTNUM"].ToString()); item.SubItems.Add(dt_parts.Rows[i]["MEMO"].ToString()); item.Tag = dt_parts.Rows[i]["ASSOBJECTID"].ToString(); treeCreater(item, dt_parts.Rows[i]["ASSOBJECTID"].ToString()); } DataTable dt_Materail = m_StructService.GetStructMaterailList(p_objectId); int len2 = dt_Materail.Rows.Count; for (int i = 0; i < len2; i++) { TreeListViewItem item = new TreeListViewItem(dt_Materail.Rows[i]["MATERIALNO"].ToString(), 0); node.Items.Add(item); // item.Expand(); item.SubItems.Add(dt_Materail.Rows[i]["VERSION"].ToString()); item.SubItems.Add(dt_Materail.Rows[i]["ASSONUM"].ToString()); item.SubItems.Add(dt_Materail.Rows[i]["MODELTYPE"].ToString()); item.SubItems.Add(dt_Materail.Rows[i]["SORTNUM"].ToString()); item.Tag = dt_Materail.Rows[i]["ASSOBJECTID"].ToString(); item.SubItems.Add(dt_Materail.Rows[i]["MEMO"].ToString()); } }
//产品1包含产品2,产品2就不能包含产品1 //查看产品结构是否构成循环 private bool filterCycle(string p_assoId) { DataTable dt_parts = m_structService.GetStructPartList(p_assoId); bool contain = false; for (int i = 0; i < dt_parts.Rows.Count; i++) { string new_objectId = dt_parts.Rows[i]["ASSOBJECTID"].ToString(); if (new_objectId == this.copy_Product.PRODUCTID) { return(true); } contain = filterCycle(new_objectId); if (contain) { return(true); } } return(contain); }