日期:2014-05-20 浏览次数:21590 次
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
}
}