首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi树的遍历求和解决方法

2012-03-20 
delphi树的遍历求和大家好有问题请教如题:数据库结构:id,parentid,name,money,totalmoney0,0,根节点,0,01,

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之和。
我试过遍历算法,但是一次遍历只能算出一个节点的数据。

[解决办法]

Delphi(Pascal) code
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; 

热点排行