我已经存在一棵部门结构树,现在要将人员表里面的人员信息添加到树里面,应该怎么进行?
我写的代码如下,但是出现死循环,请各位帮助解决!!!!
dmMain.cdsQuery.First;//定位人员数据集到第一条记录
while not dmMain.cdsQuery.Eof do
begin
for i:=0 to tveCode.Items.Count-1 do//遍离所有树接点
begin
Parent:=tveCode.items[i];//当前部门接点赋值给PARENT
if Trim(GetTreeText(Parent.Text))=Trim(dmMain.cdsQuery.FieldValues['F_BMXX_BMBH']) then//树接点名称和,人员信息数据的部门名称进行比较,
begin
tveCode.Items.AddChild(Parent,dmMain.cdsQuery.FieldValues['F_RYXM']);
//满足条件将人员名称添加到该部门下,做为子接点
end;
end;
dmMain.cdsQuery.Next;
end; // while
我写的代码如下,但是出现死循环,请各位帮助解决!!!!
dmMain.cdsQuery.First;//定位人员数据集到第一条记录
while not dmMain.cdsQuery.Eof do
begin
for i:=0 to tveCode.Items.Count-1 do//遍离所有树接点
begin
Parent:=tveCode.items[i];//当前部门接点赋值给PARENT
if Trim(GetTreeText(Parent.Text))=Trim(dmMain.cdsQuery.FieldValues['F_BMXX_BMBH']) then//树接点名称和,人员信息数据的部门名称进行比较,
begin
tveCode.Items.AddChild(Parent,dmMain.cdsQuery.FieldValues['F_RYXM']);
//满足条件将人员名称添加到该部门下,做为子接点
end;
end;
dmMain.cdsQuery.Next;
end; // while
解决方案 »
- 有空的大哥大姐帮看一看代码,问题出在那里了?
- 用delphi7做酒店管理系统的同行, 请进
- 高分求帮忙,只要解决就结帐,怎样用Delphi的ADO连接远程Ftp服务器上的Access数据库
- 求达人指教 ADOTABLE的记录指正往下和往上移动是什么写的啊
- 如何实现DBGrid单元格内容的拷贝
- 关于memo的问题
- 如何获得媒体文件的后缀名
- 非常奇怪的问题,关于FLASH的,有兴趣的大虾可以侃侃.....
- delphi中有沒有像vb中的new collection的類型
- 为何设数组长度时出错呢??快来拣分
- 怎样才能让form1.Image1.Picture.Bitmap的内容等于form1.Image2.Picture.Graphic
- 请问如何给另一个应用程序发消息,比如是模拟按键或鼠标,就好象是外挂程序一样,请举个例子!谢谢!
while not dmMain.cdsQuery.Eof do
begin
for i:=0 to tveCode.Items.Count-1 do//遍离所有树接点
begin
Parent:=tveCode.items[i];//当前部门接点赋值给PARENT
if Trim(GetTreeText(Parent.Text))=Trim(dmMain.cdsQuery.FieldValues['F_BMXX_BMBH']) then//树接点名称和,人员信息数据的部门名称进行比较,
begin
tveCode.Items.AddChild(Parent,dmMain.cdsQuery.FieldValues['F_RYXM']);
//满足条件将人员名称添加到该部门下,做为子接点
break;
end;
end;
dmMain.cdsQuery.Next;
end; // while
我写了测试代码,是通过的,列出备参考:unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, DB, ADODB;type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
tblDep: TADOTable;
tblPer: TADOTable;
tveCode: TTreeView;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
Parent: TTreeNode;
begin
tblDep.First; while not tblDep.Eof do
begin
if tblDep.FieldByName('UpCode').AsString = '' then
tveCode.Items.Add(nil, tblDep.FieldByName('DepCode').AsString)
else
begin
for i:=0 to tveCode.Items.Count -1 do
begin
Parent := tveCode.Items.Item[i];
if tblDep.FieldByName('UpCode').AsString = Parent.Text then
begin
tveCode.Items.AddChild(Parent, tblDep.FieldByName('DepCode').AsString);
break;
end;
end;
end;
tblDep.Next;
end;
tveCode.FullExpand;
end;procedure TForm1.Button2Click(Sender: TObject);
var
i:Integer;
Parent: TTreeNode;
begin
tblPer.First; while not tblPer.Eof do
begin
for i:=0 to tveCode.Items.Count -1 do
begin
Parent := tveCode.Items.Item[i];
if tblPer.FieldByName('DepCode').AsString = Parent.Text then
begin
tveCode.Items.AddChild(Parent, tblPer.FieldByName('PersonNa').AsString);
break;
end;
end;
tblPer.Next;
end;
tveCode.FullExpand;
end;end.