日期:2014-05-20 浏览次数:21406 次
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Windows.Forms; using 核心类.公用; using 核心类.系统; using 核心类.控件基类; namespace 窗体控件 { public partial class 部门组织结构树控件窗体 : 插件窗体基类 { public 部门组织结构树控件窗体() { InitializeComponent(); } #region 对外属性 public TreeView tvw_部门树 { get{ return this._tvw_部门结构树; } } #endregion #region 自定义方法 public void 初始化结构树() { this._tvw_部门结构树.Nodes.Clear(); //获取组织关系模型类 业务对象模型类 cls_模型类 = 全局环境类.获取模型类("Organ"); 业务对象模型类 cls_关系模型类 = 全局环境类.获取模型类("Organ Tree"); if (cls_模型类 == null || cls_关系模型类 == null) return; List<组织信息类> lst_根部门 = 组织信息类.获取首个组织对象(); if (lst_根部门 == null) return; foreach (组织信息类 cls_根部门信息 in lst_根部门) { TreeNode trn_根节点 = 形成树节点(cls_根部门信息); if (trn_根节点 != null) { trn_根节点.ImageIndex = 0; trn_根节点.SelectedImageIndex = 0; this._tvw_部门结构树.Nodes.Add(trn_根节点); 递归加载组织结构(trn_根节点, cls_模型类, cls_关系模型类, cls_根部门信息); } } } private void 递归加载组织结构(TreeNode trn_父节点, 业务对象模型类 cls_模型类, 业务对象模型类 cls_关系模型类, 组织信息类 cls_组织信息) { List<组织信息类> lst_子组织对象 = null; 关系管理泛型基类 cls_关系泛型基类 = new 关系管理泛型基类(); cls_关系泛型基类.获取父对象关联的子(cls_组织信息, cls_关系模型类, cls_模型类, out lst_子组织对象); foreach (组织信息类 cls_子组织信息 in lst_子组织对象) { if (cls_子组织信息 == null) continue; TreeNode trn_子节点 = 形成树节点(cls_子组织信息); if (trn_父节点 == null) continue; trn_子节点.ImageIndex = 1; trn_子节点.SelectedImageIndex = 1; trn_父节点.Nodes.Add(trn_子节点); 递归加载组织结构(trn_子节点, cls_模型类, cls_关系模型类, cls_子组织信息); } } private TreeNode 形成树节点(组织信息类 cls_组织对象) { if (cls_组织对象 == null) return null; TreeNode trn_组织节点 = new TreeNode(cls_组织对象.str_部门名称); trn_组织节点.Tag = cls_组织对象; trn_组织节点.ImageIndex = 0; return trn_组织节点; } #endregion } }