QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4070|回复: 2
打印 上一主题 下一主题

关于treeview遍历,并添加子节点

[复制链接]
字体大小: 正常 放大
boyle        

1

主题

0

听众

20

积分

升级  15.79%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-2-2 10:32 |只看该作者 |正序浏览
|招呼Ta 关注Ta
我想实现这样的功能,遍历tree中的节点。树是单位的部门结构树,节点是其中部门,已经添加好的。我想遍历树中所有节点,如果没有子节点说明是单位中的最小部门,然后查询改部门的员工并添加到该部门以下。下面的代码,一直都出错,好像是内存读取错误。请帮忙,三拜~~~
, e& ^( y' p! d+ A3 \: |6 iprocedure Trs.TreeView1Click(Sender: TObject);
$ i' t7 l: w; l1 ]var node: TTreeNode;
  F: w. J! \, m" P    strnode:string;( K. P' J( U8 A- A: o; a, z" Z  d
    label ok;
% A4 l$ j% v) H* \* X% m2 S7 [    label haschild;8 j8 E' s  j& d& F; r; H6 B8 Z& G
    label nextnode;
, P/ Z0 E; i2 Nbegin% A' h1 J! _$ ?/ J  d* H) z
  node:=treeview1.TopItem;
  h4 |2 J5 V5 ^/ |- ~6 f) T' whaschild: node:=getfirstchild(node);
) R& y4 T2 y+ J% b" @* Q  strnode:=node.Text;  T9 |8 B2 S5 ~) @/ y2 A# ^
  dm.qtree.Close;
: q7 M& K' f' S& J( q0 @  dm.qtree.SQL.Clear;6 W# F, q1 |+ ?
  dm.qtree.SQL.Text:='select empname from empbasic where depid='+''''+strnode+'''';
: R6 k' q  X  w5 d6 w  dm.qtree.Open;  //取得该部门下所有员工姓名3 }- |3 R4 B) [8 L2 v9 [
  if not(dm.qtree.IsEmpty) then   //如果记录非空(即该部门下有员工)6 ]% t4 X- G4 A9 ^
  begin   //将所有员工姓名都作为子节点添加8 t* p2 e3 g( v* e" F) \4 M
    repeat
, [/ m9 P/ k; w3 v, a9 e( |, ^1 v, e    strnode:=dm.qtree.fieldbyname('empname').AsString;
1 k. m: D4 p% O    treeview1.Items.AddChild(node,strnode);6 j( G0 v$ Z4 `9 C, W7 Y- F) i' J
    dm.qtree.Next;5 Y9 [3 S4 `) h" s  O: p& H
    until dm.qtree.Eof;: r4 Y/ J, G- H, K
  end;
6 p1 t) i. e$ @$ Z  L0 @& G  if not(node.IndexOf(node.Parent)=node.Parent.Count -1) then //如果当前节点不是同级节点最后一个% l8 R. E8 W$ m
  begin
1 A& X9 }/ T/ J! l; i/ ]5 Unextnode:    node:=node.getNextSibling;  //取得下一个同级节点
! |# j- M; K0 O7 w: ]" m    goto haschild;
$ A7 G% S9 P7 p; u7 A3 X  end
" X, \9 u" P3 y" ]* F+ d  else) o1 |; }& P( r, _% p2 f
  begin
2 e7 M$ ]7 x, }6 u# e    if node.Index =treeview1.Items.Count then goto ok
' p. @+ G$ h$ K% Q' T8 s0 D  L    else goto nextnode;9 W/ u$ a2 {2 o3 g. L6 U
  end;+ `9 S5 N9 C' r/ d
ok:null;
) u, q( R5 K2 N$ l* s) _2 H( c3 \end;
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
xtmlj        

0

主题

2

听众

95

积分

升级  94.74%

该用户从未签到

新人进步奖

回复

使用道具 举报

ilikenba 实名认证       

1万

主题

49

听众

2万

积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-20 15:12 , Processed in 0.462635 second(s), 69 queries .

    回顶部