try TreeView1.Items.Clear; with Query do begin close; sql.Clear; sql.Add('select denumber,detitle from department order by denumber asc'); open; first; while not Eof do begin node:=TreeView1.Items.AddChild(nil,Query.Fieldbyname ('detitle').AsString ); with Querylt do begin close; sql.Clear; sql.Add('select usname from UserBasicInfo where usdepartmentno='); sql.Add(''+Query.Fieldbyname('denumber').AsString+'' ); open; first; while not Eof do begin childnode:=TreeView1.Items.AddChild(node,Querylt.Fieldbyname('usname').AsString ); next; end; end; next; end; end; for i:=0 to TreeView1.Items.Count-1 do begin TreeView1.Items[i].SelectedIndex:=1 ; if TreeView1.Items[i].Level=0 then TreeView1.Items[i].Expand(True); end; finally TreeView1.Items[0].Selected:=true;
TreeView1.Items.Clear;
with Query do
begin
close;
sql.Clear;
sql.Add('select denumber,detitle from department order by denumber asc');
open;
first;
while not Eof do
begin
node:=TreeView1.Items.AddChild(nil,Query.Fieldbyname ('detitle').AsString ); with Querylt do
begin
close;
sql.Clear;
sql.Add('select usname from UserBasicInfo where usdepartmentno=');
sql.Add(''+Query.Fieldbyname('denumber').AsString+'' ); open;
first;
while not Eof do
begin
childnode:=TreeView1.Items.AddChild(node,Querylt.Fieldbyname('usname').AsString );
next;
end;
end;
next;
end;
end;
for i:=0 to TreeView1.Items.Count-1 do
begin
TreeView1.Items[i].SelectedIndex:=1 ;
if TreeView1.Items[i].Level=0 then
TreeView1.Items[i].Expand(True);
end; finally
TreeView1.Items[0].Selected:=true;
TreeView1.Items.EndUpdate;
end;以上是一个动态树
只需ADOQuerry一个控件,ado连接方式就不用多说
很简单的。