using System; using System.Collections; using System.ComponentModel; using System.Drawing; using System.Data; using System.Windows.Forms; using Infragistics.Win.UltraWinTree; using Core.Mes.IBaseInterface; namespace Core.Mes.ClientPurviewManager { /// /// UcDepartment 的摘要说明。 /// public class UcDepartment : System.Windows.Forms.UserControl { public Infragistics.Win.UltraWinTree.UltraTree ultraTree1; /// /// 必需的设计器变量。 /// private System.ComponentModel.Container components = null; public UcDepartment() { // 该调用是 Windows.Forms 窗体设计器所必需的。 InitializeComponent(); // TODO: 在 InitializeComponent 调用后添加任何初始化 } /// /// 清理所有正在使用的资源。 /// protected override void Dispose( bool disposing ) { if( disposing ) { if(components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region 组件设计器生成的代码 /// /// 设计器支持所需的方法 - 不要使用代码编辑器 /// 修改此方法的内容。 /// private void InitializeComponent() { Infragistics.Win.Appearance appearance1 = new Infragistics.Win.Appearance(); Infragistics.Win.UltraWinTree.UltraTreeColumnSet ultraTreeColumnSet1 = new Infragistics.Win.UltraWinTree.UltraTreeColumnSet(); this.ultraTree1 = new Infragistics.Win.UltraWinTree.UltraTree(); ((System.ComponentModel.ISupportInitialize)(this.ultraTree1)).BeginInit(); this.SuspendLayout(); // // ultraTree1 // appearance1.BackColor = System.Drawing.Color.LightYellow; this.ultraTree1.Appearance = appearance1; this.ultraTree1.ColumnSettings.RootColumnSet = ultraTreeColumnSet1; this.ultraTree1.Dock = System.Windows.Forms.DockStyle.Fill; this.ultraTree1.HideSelection = false; this.ultraTree1.Location = new System.Drawing.Point(0, 0); this.ultraTree1.Name = "ultraTree1"; this.ultraTree1.Size = new System.Drawing.Size(272, 408); this.ultraTree1.TabIndex = 0; // // UcDepartment // this.Controls.Add(this.ultraTree1); this.Name = "UcDepartment"; this.Size = new System.Drawing.Size(272, 408); this.Load += new System.EventHandler(this.UcDepartment_Load); ((System.ComponentModel.ISupportInitialize)(this.ultraTree1)).EndInit(); this.ResumeLayout(false); } #endregion public DataSet _departmentData ; private const string DEPARTMENT_BASE = "ROOT"; private void UcDepartment_Load(object sender, System.EventArgs e) { } public void RefreshTree() { TreeNodeLoadData(); } private void TreeNodeLoadData() { try { if (this.ultraTree1.Nodes.Count > 0) RemoveAllTreeNode(this.ultraTree1); UltraTreeFillData(); // this.ultraTree1.ExpandAll(); } catch (System.Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); } } private void RemoveAllTreeNode(UltraTree ut) { int count = ut.Nodes.Count ; for (int i = count -1; i >= 0 ; i--) { ut.Nodes[i].Remove(); } } private void UltraTreeFillData() { if (_departmentData != null && _departmentData.Tables.Count > 0) { DataTable dt = _departmentData.Tables[0]; DataRow[] drs = dt.Select("DEPARTMENTPID = '"+DEPARTMENT_BASE+"'"); foreach(DataRow dr in drs) { try { UltraTreeNode tn = new UltraTreeNode(); tn.Text = dr["DEPARTMENTNAME"].ToString(); tn.Key = dr["DEPARTMENTID"].ToString(); AddTreeNodes(tn); this.ultraTree1.Nodes.Add(tn); } catch (System.Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); } } } } private void AddTreeNodes(UltraTreeNode tn) { DataTable dt = _departmentData.Tables[0]; DataRow[] drs = dt.Select("DEPARTMENTPID = '"+tn.Key +"'"); foreach(DataRow dr in drs) { try { UltraTreeNode utn = new UltraTreeNode(); utn.Text = dr["DEPARTMENTNAME"].ToString(); utn.Key = dr["DEPARTMENTID"].ToString(); AddTreeNodes(utn); tn.Nodes.Add(utn); } catch(System.Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); } } } string _ParentID = ""; public string ParentID { get { try { _ParentID = ""; if (this.ultraTree1.SelectedNodes.Count > 0) { GetParenID(this.ultraTree1.SelectedNodes[0]); } } catch (System.Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); } return _ParentID; } } public void GetParenID(Infragistics.Win.UltraWinTree.UltraTreeNode TreeNode) { if (TreeNode.Parent == null) { return; } else { _ParentID = _ParentID + TreeNode.Key + ";"; GetParenID(TreeNode.Parent); } } } }