using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using CoreFS.CA06;using Pur.Entity; using Infragistics.Win.UltraWinTree; using Pur.Entity.configureEntity; using Pur.Entity; namespace Pur.configure { public partial class FrmMatClassPop_ups : FrmPmsBase { public FrmMatClassPop_ups(OpeBase ob) { InitializeComponent(); this.ob = ob; } private string basecode; public string Basecode { get { return basecode; } set { basecode = value; } } private string basename; public string Basename { get { return basename; } set { basename = value; } } DataTable dt_Purmatclass = null; private void FrmMatClassPop_ups_Load(object sender, EventArgs e) { ultraTree1.Nodes.Clear(); PurmatclassEntity entity = new PurmatclassEntity(); entity.Validflag = "1"; DataTable dt = this.execute("com.hnshituo.pur.configure.service.MatClassService", "find", new object[] { entity,0,0 }); if (dt == null || dt.Rows.Count < 1) { return; } dt_Purmatclass = dt;//保存物料分类全局变量 DataTable dt_A = new DataTable();//物料分类 DataRow[] sel_dt = dt.Select("PARENTCODE = '' or PARENTCODE is null"); dt_A = dt.Clone(); //克隆A的结构 foreach (DataRow sel_dtB in sel_dt) { dt_A.ImportRow(sel_dtB); } for (int j = 0; j < dt_A.Rows.Count; j++) { UltraTreeNode Ultnode = ultraTree1.Nodes.Add(dt_A.Rows[j]["BASECODE"].ToString(), dt_A.Rows[j]["BASENAME"].ToString()); getChildNodes(Ultnode); } foreach (UltraTreeNode Ultnode in ultraTree1.Nodes) { Ultnode.Expanded = true; } } private void getChildNodes(UltraTreeNode Tnode) { DataTable dt_A = dt_Purmatclass.Clone();//物料分类 DataRow[] rows = dt_Purmatclass.Select("PARENTCODE='" + Tnode.Key + "'"); foreach (DataRow row in rows) { dt_A.ImportRow(row);//复制行数据 } //添加物料分类 for (int j = 0; j < dt_A.Rows.Count; j++) { UltraTreeNode Ultnode = Tnode.Nodes.Add(dt_A.Rows[j]["BASECODE"].ToString(), dt_A.Rows[j]["BASENAME"].ToString()); getChildNodes(Ultnode);//利用递归将当前节点的子节点添加进去 } } /// /// 选择节点 /// /// /// private void ultraTree1_AfterSelect(object sender, SelectEventArgs e) { basecode = ultraTree1.ActiveNode.Key; basename = ultraTree1.ActiveNode.Text; this.Close(); } private void btn_clear_Click(object sender, EventArgs e) { basecode = ""; basename = ""; this.Close(); } } }