您的位置:首页 > 数据库

利用ArrayCollection获取数据库的信息构建多级树结构

2011-08-23 16:18 441 查看
private function getDepartNameRHandler(event : ResultEvent) : void

{

[bindable]

var aryTemp : ArrayCollection = event.result as ArrayCollection;

aryDeptName=aryTemp;

var aryChildren:ArrayCollection=new ArrayCollection();

//先筛选出二级及以后分枝

for(var i:Number=aryDeptName.length-1; i >=0; i--)

{

var item:Object = aryDeptName.getItemAt(i);

if (item.SUPERDEPARTNUM>=0)

{

aryDeptName.removeItemAt(i);

aryChildren.addItem(item);

}

}

//二级及以后的分枝先构建树

var temparychildren1:ArrayCollection=new ArrayCollection();

var temparychildren2:ArrayCollection=new ArrayCollection();

temparychildren1=aryChildren;

temparychildren2=aryChildren;

for(var temp1:Number=temparychildren1.length-1;temp1>=0;temp1--)

{

for(var temp2:Number=temparychildren2.length-1;temp2>=0;temp2--)

{

if(temparychildren1.getItemAt(temp1).SUPERDEPARTNUM==temparychildren2.getItemAt(temp2).DEPARTNUM)

{

if(temparychildren2.getItemAt(temp2).children==null)

{

temparychildren2.getItemAt(temp2).children=new ArrayCollection([temparychildren1.getItemAt(temp1)])

}

else

{

temparychildren2.getItemAt(temp2).children.addItem(temparychildren1.getItemAt(temp1));

}

}

}

}

//将上面构建的树加载到一级根节点下面

for(var j:Number=temparychildren2.length-1;j>=0;j--)

{

for(var m:Number=0; m < aryDeptName.length-1;m++)

{

if(temparychildren2.getItemAt(j).SUPERDEPARTNUM == aryDeptName.getItemAt(m).DEPARTNUM)

{

if(aryDeptName.getItemAt(m).children==null)

{

aryDeptName.getItemAt(m).children=new ArrayCollection([temparychildren2.getItemAt(j)]);

// aryChildren.removeItemAt(j);

}

else

{

aryDeptName.getItemAt(m).children.addItem(temparychildren2.getItemAt(j));

// aryChildren.removeItemAt(j);

}

}

}

}

var aryDeptN:ArrayCollection=new ArrayCollection([{DEPARTNAME:"科室设置",children:aryDeptName},{DUTYNAME:"职务设置",children:aryDutyName}]);

aryDeptAndDuty=aryDeptN;

//this.tree.dataProvider=aryDepartandDuty;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: