delphi树的遍历求和
大家好有问题请教
如题:
数据库结构:
id,parentid,name,money,totalmoney
0,0,根节点,0,0
1,0,张山,1000,0
2,0,张好,2000,0
3,0,王五,3000,0
4,1,黎明,4000,0
5,2,老刘,5000,0
...........
现在使用dxdbtreeview能够形成树形结构。
要解决的问题,如何实现每个人的totalmoney为所有下层节点的和。
意思就是顶层节点的totalmoney字段为下面所有的money之和
第二层节点同样的totalmoney字段也是自己下面所有节点的money之和。
我试过遍历算法,但是一次遍历只能算出一个节点的数据。
[解决办法]
type Tmydata = record(id:interger; parentid:integer; name:string; money:double; totalmoney:double; resum:boolean;);Pmydata = ^Tmydata;function sum(p:Ttreenode):double;var i:integer; d:Pmydata;begin d:=Pmydata(p.data); if not d.resum then begin result:=d.totalmoney; exit; end; if p.count<1 then begin result:=d.money; d.totalmoney:=d.money; d.resum:=false; exit; end; result:=0.0; for i:=0 to p.count-1 do result:=result+sum(p.item[i]); d.totalmoney:=result; d.resum:=false;end;