procedure TfrmBMSZ.LoadTreeNode; var rootNode, childNode: TTreeNode; NodeBM: array of TTreeNode; iBMCount, i: Integer; szBMDM, szBMMC, szZYMC: string; // 部门职员名称 szTemp: string; begin if not DataSource1.DataSet.Active then Exit; i := 0; rootNode := Treeview1.Items[0];
// 加入部门信息 with ADOQueryBM do begin Close; SQL.Add('Select bmdm, bmmc, xm from bmry where (bh = 0) order by bmdm'); Open; Last; First; iBMCount := RecordCount; if iBMCount > 0 then //部门数量 begin SetLength(NodeBM, iBMCount); while not Eof do begin szBMDM := FieldByName('bmdm').AsString; szBMMC := szBMDM + ' ' + FieldByName('bmmc').AsString; NodeBM[i] := Treeview1.Items.AddChild(rootNode, szBMMC); NodeBM[i].ImageIndex := 1; NodeBM[i].SelectedIndex := 1; Inc(i); Next; end; end; Close; end;
if i = 0 then Exit; // i = 0表示没有部门信息
// 加入职员信息到树 i := -1; with DataSource1.DataSet do begin First; while not Eof do begin szBMDM := FieldByName('bmdm').AsString; szZYMC := FieldByName('xm').AsString; if (szBMDM <> szTemp) then begin szTemp := szBMDM; Inc(i); end else begin childNode := Treeview1.Items.AddChild(NodeBM[i], szZYMC); childNode.ImageIndex := 2; childNode.SelectedIndex := 2; end; Next; end; // while not Eof Close; end; // with ADOQuery2 Treeview1.FullExpand; end;
----------------------------------------------
-