UcDepartment.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Windows.Forms;
  7. using Infragistics.Win.UltraWinTree;
  8. using Core.Mes.IBaseInterface;
  9. namespace Core.Mes.ClientPurviewManager
  10. {
  11. /// <summary>
  12. /// UcDepartment 的摘要说明。
  13. /// </summary>
  14. public class UcDepartment : System.Windows.Forms.UserControl
  15. {
  16. public Infragistics.Win.UltraWinTree.UltraTree ultraTree1;
  17. /// <summary>
  18. /// 必需的设计器变量。
  19. /// </summary>
  20. private System.ComponentModel.Container components = null;
  21. public UcDepartment()
  22. {
  23. // 该调用是 Windows.Forms 窗体设计器所必需的。
  24. InitializeComponent();
  25. // TODO: 在 InitializeComponent 调用后添加任何初始化
  26. }
  27. /// <summary>
  28. /// 清理所有正在使用的资源。
  29. /// </summary>
  30. protected override void Dispose( bool disposing )
  31. {
  32. if( disposing )
  33. {
  34. if(components != null)
  35. {
  36. components.Dispose();
  37. }
  38. }
  39. base.Dispose( disposing );
  40. }
  41. #region 组件设计器生成的代码
  42. /// <summary>
  43. /// 设计器支持所需的方法 - 不要使用代码编辑器
  44. /// 修改此方法的内容。
  45. /// </summary>
  46. private void InitializeComponent()
  47. {
  48. Infragistics.Win.Appearance appearance1 = new Infragistics.Win.Appearance();
  49. Infragistics.Win.UltraWinTree.UltraTreeColumnSet ultraTreeColumnSet1 = new Infragistics.Win.UltraWinTree.UltraTreeColumnSet();
  50. this.ultraTree1 = new Infragistics.Win.UltraWinTree.UltraTree();
  51. ((System.ComponentModel.ISupportInitialize)(this.ultraTree1)).BeginInit();
  52. this.SuspendLayout();
  53. //
  54. // ultraTree1
  55. //
  56. appearance1.BackColor = System.Drawing.Color.LightYellow;
  57. this.ultraTree1.Appearance = appearance1;
  58. this.ultraTree1.ColumnSettings.RootColumnSet = ultraTreeColumnSet1;
  59. this.ultraTree1.Dock = System.Windows.Forms.DockStyle.Fill;
  60. this.ultraTree1.HideSelection = false;
  61. this.ultraTree1.Location = new System.Drawing.Point(0, 0);
  62. this.ultraTree1.Name = "ultraTree1";
  63. this.ultraTree1.Size = new System.Drawing.Size(272, 408);
  64. this.ultraTree1.TabIndex = 0;
  65. //
  66. // UcDepartment
  67. //
  68. this.Controls.Add(this.ultraTree1);
  69. this.Name = "UcDepartment";
  70. this.Size = new System.Drawing.Size(272, 408);
  71. this.Load += new System.EventHandler(this.UcDepartment_Load);
  72. ((System.ComponentModel.ISupportInitialize)(this.ultraTree1)).EndInit();
  73. this.ResumeLayout(false);
  74. }
  75. #endregion
  76. public DataSet _departmentData ;
  77. private const string DEPARTMENT_BASE = "ROOT";
  78. private void UcDepartment_Load(object sender, System.EventArgs e)
  79. {
  80. }
  81. public void RefreshTree()
  82. {
  83. TreeNodeLoadData();
  84. }
  85. private void TreeNodeLoadData()
  86. {
  87. try
  88. {
  89. if (this.ultraTree1.Nodes.Count > 0)
  90. RemoveAllTreeNode(this.ultraTree1);
  91. UltraTreeFillData();
  92. // this.ultraTree1.ExpandAll();
  93. }
  94. catch (System.Exception ex)
  95. {
  96. System.Diagnostics.Debug.WriteLine(ex.ToString());
  97. }
  98. }
  99. private void RemoveAllTreeNode(UltraTree ut)
  100. {
  101. int count = ut.Nodes.Count ;
  102. for (int i = count -1; i >= 0 ; i--)
  103. {
  104. ut.Nodes[i].Remove();
  105. }
  106. }
  107. private void UltraTreeFillData()
  108. {
  109. if (_departmentData != null && _departmentData.Tables.Count > 0)
  110. {
  111. DataTable dt = _departmentData.Tables[0];
  112. DataRow[] drs = dt.Select("DEPARTMENTPID = '"+DEPARTMENT_BASE+"'");
  113. foreach(DataRow dr in drs)
  114. {
  115. try
  116. {
  117. UltraTreeNode tn = new UltraTreeNode();
  118. tn.Text = dr["DEPARTMENTNAME"].ToString();
  119. tn.Key = dr["DEPARTMENTID"].ToString();
  120. AddTreeNodes(tn);
  121. this.ultraTree1.Nodes.Add(tn);
  122. }
  123. catch (System.Exception ex)
  124. {
  125. System.Diagnostics.Debug.WriteLine(ex.ToString());
  126. }
  127. }
  128. }
  129. }
  130. private void AddTreeNodes(UltraTreeNode tn)
  131. {
  132. DataTable dt = _departmentData.Tables[0];
  133. DataRow[] drs = dt.Select("DEPARTMENTPID = '"+tn.Key +"'");
  134. foreach(DataRow dr in drs)
  135. {
  136. try
  137. {
  138. UltraTreeNode utn = new UltraTreeNode();
  139. utn.Text = dr["DEPARTMENTNAME"].ToString();
  140. utn.Key = dr["DEPARTMENTID"].ToString();
  141. AddTreeNodes(utn);
  142. tn.Nodes.Add(utn);
  143. }
  144. catch(System.Exception ex)
  145. {
  146. System.Diagnostics.Debug.WriteLine(ex.ToString());
  147. }
  148. }
  149. }
  150. string _ParentID = "";
  151. public string ParentID
  152. {
  153. get
  154. {
  155. try
  156. {
  157. _ParentID = "";
  158. if (this.ultraTree1.SelectedNodes.Count > 0)
  159. {
  160. GetParenID(this.ultraTree1.SelectedNodes[0]);
  161. }
  162. }
  163. catch (System.Exception ex)
  164. {
  165. System.Diagnostics.Debug.WriteLine(ex.ToString());
  166. }
  167. return _ParentID;
  168. }
  169. }
  170. public void GetParenID(Infragistics.Win.UltraWinTree.UltraTreeNode TreeNode)
  171. {
  172. if (TreeNode.Parent == null)
  173. {
  174. return;
  175. }
  176. else
  177. {
  178. _ParentID = _ParentID + TreeNode.Key + ";";
  179. GetParenID(TreeNode.Parent);
  180. }
  181. }
  182. }
  183. }