关于treeview遍历,并添加子节点
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~procedure Trs.TreeView1Click(Sender: TObject);
var node: TTreeNode;
strnode:string;
label ok;
label haschild;
label nextnode;
begin
node:=treeview1.TopItem;
haschild: node:=getfirstchild(node);
strnode:=node.Text;
dm.qtree.Close;
dm.qtree.SQL.Clear;
dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';
dm.qtree.Open; //取得该部门下所有员工姓名
if not(dm.qtree.IsEmpty) then //如果记录非空(即该部门下有员工)
begin //将所有员工姓名都作为子节点添加
repeat
strnode:=dm.qtree.fieldbyname('empname').AsString;
treeview1.Items.AddChild(node,strnode);
dm.qtree.Next;
until dm.qtree.Eof;
end;
if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个
begin
nextnode: node:=node.getNextSibling; //取得下一个同级节点
goto haschild;
end
else
begin
if node.Index =treeview1.Items.Count then goto ok
else goto nextnode;
end;
ok:null;
end; <P>我没有办法调试,不过感觉可能没什么错误,你把错误也发出来看看!</P> 好
页:
[1]