- 在线时间
- 0 小时
- 最后登录
- 2005-2-2
- 注册时间
- 2004-5-13
- 听众数
- 0
- 收听数
- 0
- 能力
- 0 分
- 体力
- 64 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 20
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1
- 主题
- 1
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   15.79% 该用户从未签到
 |
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~; W+ t6 {5 h& A; Z2 W k; ]
procedure Trs.TreeView1Click(Sender: TObject);
4 x2 H1 q* H9 lvar node: TTreeNode;
, {' S9 V. O* I- {/ u strnode:string;
; f. j _1 _0 X* b label ok;
0 b7 n: Z5 k) ~6 Y9 l' d7 z2 K- Y label haschild;+ i! ~/ A" F& Q9 B w9 a0 d, i
label nextnode;
2 I9 [8 Y H I! Y* F i7 A* R% dbegin
3 a+ @! L4 } ^3 X/ v) h8 i node:=treeview1.TopItem;6 h) f+ y8 @0 V. H2 F
haschild: node:=getfirstchild(node);
7 f$ L+ P; B$ t/ g: \4 k& Z# R6 s strnode:=node.Text;
5 o" |% g; p8 F7 f. M8 f5 t3 a$ w dm.qtree.Close;: |. @, D: Q3 p' u7 k; z$ d4 s
dm.qtree.SQL.Clear;
, h3 c9 S& L3 O dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';3 F) s* Q- s$ s6 h% W
dm.qtree.Open; //取得该部门下所有员工姓名- O) w: c; `* W
if not(dm.qtree.IsEmpty) then //如果记录非空(即该部门下有员工)
: G A, n' }% s6 b begin //将所有员工姓名都作为子节点添加 I# a; y8 A8 L- e$ Q! y% o. z
repeat
5 k0 x' i# O7 S+ H- U5 c strnode:=dm.qtree.fieldbyname('empname').AsString;. z: a+ C5 j8 a# P3 a+ T! |
treeview1.Items.AddChild(node,strnode);
) N6 n _& ^* C. o z! V1 J2 g* ~ dm.qtree.Next;
1 b9 B" N8 L" w9 k$ D until dm.qtree.Eof;
: D7 \7 K# R5 `) q end;
* H/ f$ h% H0 v( X+ c! ^' C if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个+ a- D; m) s; {3 ~4 W, ~+ _
begin% r4 r5 `" j _% I/ X% ~7 f( y
nextnode: node:=node.getNextSibling; //取得下一个同级节点. W, J8 x6 Q$ ?: _* H4 ?
goto haschild;4 B' q& K2 l/ S7 ]3 D3 d
end5 @* k& Q/ x. I W7 _
else# R% A- g' K# b4 y$ V
begin) J3 c" X; T/ s ~. V. H, h7 J0 S
if node.Index =treeview1.Items.Count then goto ok& }+ u( A* }% `7 k3 P6 \
else goto nextnode;* a& s5 ]( G6 h* t' _9 U0 F# L: {
end;
1 I6 d. s9 u6 }3 C# D& D4 c$ bok:null;, q0 t6 [6 |& v& c( y+ ~0 ?4 d4 y
end; |
zan
|