数学建模社区-数学中国

标题: 关于treeview遍历,并添加子节点 [打印本页]

作者: boyle    时间: 2005-2-2 10:32
标题: 关于treeview遍历,并添加子节点
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~1 Y/ G3 r% f% e9 e( o1 w9 q; `, H
procedure Trs.TreeView1Click(Sender: TObject);
$ g- K8 L" s8 [, E8 ovar node: TTreeNode;
1 S7 C# ^5 ]3 x$ E1 |5 ]" F- S1 `    strnode:string;5 q) _, W- x) j+ D. N' D
    label ok;
- A" Y( b& G; _% g: Q1 N    label haschild;
# C# _9 f+ {; N3 V. v+ v$ Q    label nextnode;
3 }4 b' U) `- i( _begin
( P: O0 F! Q( v3 M" H/ |) K4 b9 N  node:=treeview1.TopItem;
. e# K" r- @8 D* Mhaschild: node:=getfirstchild(node);% J' j2 p/ Y; [% U. O5 V$ T1 l
  strnode:=node.Text;0 n; x5 T* J8 u4 V5 u
  dm.qtree.Close;
% H/ t% p% @4 E" s4 E# ~  dm.qtree.SQL.Clear;
+ P' z& u7 |+ I" K) c+ B& o  dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';+ F) G! b( e( ~# }1 Z! W/ [6 V
  dm.qtree.Open;  //取得该部门下所有员工姓名7 J. {+ {; k  Y6 k" Q% O6 v& u
  if not(dm.qtree.IsEmpty) then   //如果记录非空(即该部门下有员工)
+ A0 B! }+ x; x, L  begin   //将所有员工姓名都作为子节点添加
9 V7 c. B5 R* b$ t- i- A6 {: C! E/ I3 m* g    repeat' L. d) A1 B* G/ \! J
    strnode:=dm.qtree.fieldbyname('empname').AsString;
, W9 p4 y  y4 p. v) o* b$ l3 b    treeview1.Items.AddChild(node,strnode);
/ V6 j3 n  \: a- ?# Z    dm.qtree.Next;& T1 W8 Q. I) j9 ^
    until dm.qtree.Eof;. C3 }$ A' u, f
  end;! s( m& I2 g' `; {* @
  if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个, R. E0 G% J+ M. t
  begin
0 o& b0 r4 F6 X% C2 v( L) ynextnode:    node:=node.getNextSibling;  //取得下一个同级节点
! X1 l  s. a) ]2 l% O% N3 o+ [" T    goto haschild;1 r7 `2 ^6 ?+ M  P/ {( O) k
  end
+ l0 L6 T, G! @5 _! o  else
, b0 G4 n) x: i. R  begin% U! m% b. e+ N5 J; Y; G8 [% a9 i* N
    if node.Index =treeview1.Items.Count then goto ok7 [6 y; k5 ?5 O$ q
    else goto nextnode;1 x/ v9 ^0 S6 [% x! k  {
  end;% h- z: O% b) a5 Y
ok:null;+ }" ]3 o& v; ^( m
end;
作者: ilikenba    时间: 2005-2-2 11:35
<>我没有办法调试,不过感觉可能没什么错误,你把错误也发出来看看!</P>
作者: xtmlj    时间: 2005-3-12 19:25





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5