数据库结构如下:
id parentid,name,money,totalmoney,submoney
0,0,根节点,0,15000,0
1,0,张山,1000,5000,0
2,0,张好,2000,7000,0
3,0,王五,3000,3000,0
4,1,黎明,4000,4000,0
5,2,老刘,5000,5000,0
type
tmydata = record
id:integer;
parentid:integer;
name:string;
money:double;
totalmoney:double;
submoney:double;
resume:boolean;
end;
pmydata = ^tmydata;
现在想反向计算submoney.
submoney 是当前节点的totalmoney 减去下面所有层次的money.
并且要去掉当前下级节点的money最大值。
function submoney(p:tTreenode):double;
var
i:integer;
d:pcustdata;
begin
d:=pcustdata(p.data);
{
if not d.resum then //resum 起到只计算一次的作用?。
begin
result:=d.money;
exit;
end;
}
if p.Count <1 then
begin
d.submoney := 0; //=0
result := d.money;
d.resum:=false;
exit;
end;
result := d.money;
for i:=0 to p.count -1 do
result := result + submoney(p.Item[i]);
//全部加起来以后用总数去减
d.submoney := d.totalmoney + d.money - result;
d.resum:=false;
end;
我写的这个没有考虑下级节点的最大值。
另外一种。
function submoney(p:tTreenode):double;
相关问答:
例子程序见附件,用Delphi 7进行编译
问题代码为
Delphi(Pascal) code:
if Node.ChildNodes <> nil then
begin
for i := 0 to Node.ChildNodes.Count - 1 do
begin
cNode := N ......
小弟最近做了几个服务 服务运行需要一些参数 参数是通过一个程序界面修改的 参数保存在access数据库中 现在出现一灵异现象 单独的服务是可以进行控制的(服务的停止 暂停等等)但是多个服务一起开启会出现一服务开 ......
定义变量s,sql为string类型,s为函数参数,sql:='select field1 from table1 where'+s;运行时s赋值为id>7或者id<7、id=7,但是运行时总是出错,请各位帮我改错,多谢!
showMessage(sql)下看看
sql:='sel ......
问题是这样子的
我在form1中定义了一个sk1:tsocket
然后在form2中
用sk1 发送东西 发完后 socket 自动关闭了~
但是在form1中发东西 如果我不运行 closesocket 的话 是不会断掉的
问下 这是怎么回事
另我在 for ......