您的位置:首页 > 其它

递归的方法画树形结构

2005-11-16 08:13 253 查看
在做一个项目的时候,多次用到了递归的方法画树形结构,在网上search了一下,找到的大多都是使用record的方法做的,在csdn的一个帖子上发现了篇不用record方法的递归画树形结构的帖子,整理了一下,和大家共享。
//递归方法画树
procedure Addtree(theNode: TTreeNode; parentID:integer; mytree:TRzCheckTree; conn:TAdoconnection);var
I:integer; qry:TAdoquery; node: TTreeNode; StrSql: String;begin
//根据业务规则组织sql语句
StrSql := 'Select cUnitCode, cShortName, Id, nFatherID From Report_UnitTable Where IisTrans = 1'; StrSql := StrSql + ' And nFatherID = ' + IntToStr(parentID) + ' order by cOrderby, nFatherID ';
Qry:=Tadoquery.create(nil); qry.Connection:=conn; qry.sql.clear; qry.sql.add(StrSql); qry.active:=true;
qry.first; for i:=0 to qry.recordcount-1 do begin
node := mytree.Items.addchild(theNode, Trim(qry.FieldByName('cunitcode').AsString)+Trim(qry.FieldByName('cShortName').AsString)); Addtree(node, qry.fieldbyname('Id').asinteger, mytree, conn); //递归 qry.Next; end;
qry.free;end;
  //调用的时候,要先给nFatherID赋值。
//调用递归方法画树
AddTree(nil, FatherID, RzCheckTree1, DM.ADOConnection1);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: