--------中国长城公司
|
|------销售部
| |
| |----李大有
| |----黄二强
|
|
|------生产部
| |
| |----王小兵
| |----张大为
|
|
|------服务部
| |
| |----李小月
| |----胡小侠
|
|
|------科研部//没有人员编制
////////////////////////////////////
表一部门 num
销售部 a
生产部 b
服务部 c
科研部 d
///////////////////
表二
人员 num
李大有 a1
黄二强 a2
王小兵 b1
张大为 b2
李小月 c1
胡小侠 c2procedure TForm1.FormCreate(Sender: TObject);
var
temnode,childnode:TTreeNode;
i,j:integer;
msg:string;
begin
TreeView1.Items.Clear;
temnode:=TreeView1.Items.Add(TreeView1.Selected,PChar('中国长城公司'));
adodataset1.first;
while not adodataset1.eof do
begin
childnode:=TreeView1.Items.AddChild(temnode,adodataset1.FieldValues['部门']);
adodataset2.first;
while not adodataset2.eof do
begin
if adodataset1.FieldValues['num']=adodataset2.FieldValues['num'] then
childnode:=TreeView1.Items.AddChild(childnode,adodataset2.FieldValues['单位']);
adodataset2.next;
end;
adodataset1.next;
end;
adodataset2.first;
adodataset1.first;
end;
end.
单位字段没有?
TableNameValue: String; Sender: TTreeView; ImageValue: TImageList);
var
PNode , CNode : TTreeNode;
I : Integer;
begin
Sender.Items.Clear;
Sender.Images := ImageValue;
With DataModuleFrm.Temp1ADOQuery do
begin
if Active then
Active := False;
SQL.Clear;
SQL.Add('Select Distinct ' + MFieldStr + ' from ' + TableNameValue);
Prepared;
Open;
First;
While Not Eof do
begin
PNode := Sender.Items.AddChild(Nil,Trim(FieldByName(MFieldStr).AsString));
PNode.ImageIndex := 0;
if PNode.Level = 1 then
begin
PNode.ImageIndex := 2;
Pnode.StateIndex := 4;
end; {}
Next;
end;
end;
With DataModuleFrm.LSB_ADOQuery do
begin
Sender.SetFocus;
For I := Sender.Items.Count -1 DownTo 0 do
begin
PNode := TTreeNode.Create(Nil);
PNode := Sender.Items[I];
if Active then
Active := False;
SQL.Clear;
SQL.Add('Select ' + DFieldStr + ' from ' + TableNameValue + ' Where ' +
MFieldStr + ' = ' + #39 + Sender.Items[I].Text + #39);
Prepared;
Open;
First;
While Not Eof do
begin
CNode := Sender.Items.AddChild(PNode,Trim(FieldByName(DFieldStr).AsString));
CNode.ImageIndex := 1;
if PNode.Level = 1 then
begin
PNode.ImageIndex := 2;
Pnode.StateIndex := 4;
end;{}
Next;
end;
end;
end;
end;参数你自己添去。