TadoTable的OnCalcFields事件的用法。(100分)

  • 主题发起人 主题发起人 言希
  • 开始时间 开始时间

言希

Unregistered / Unconfirmed
GUEST, unregistred user!
我把一个TadoQuery控件和一个TadoTable控件建立主从表关系。从表中有一个字段Money。
为了对应主表的每一条记录统计从表中各记录的Money的值。我在从表中建立一个计算字段
ss,然后在从表的OnCalcFields事件中写代码:
TotalMoney := TotalMoney + DataSet.FieldByName('Money').AsInteger;
在主表的BeforeScroll中写代码:
TotalMoney := 0 ;
在做测试的时候,发现TotalMoney中的值有时不等于从表中Money字段的统计值。
请教各位大侠:是不是我的用法错了 ?
 
//在主表的BeforeScroll中写代码:
// TotalMoney := 0 ;
不需要这样作吧,ss和TotalMoney是什么关系?
 
ss只是提供一种执行OnCalcFields的条件。如果没有记算字段,TAdoTable就不会触发OnCalcFields了
 
补充前面的问题:
在 BeforeScroll中加入TotalMoney := 0是为了初始化TotalMoney,使从表中的计算事件的处理结果是从
表中的当前记录的累积结果。
 
用while do 做好过
 
我现在就是用 While do实现的。但为什么会出现上述问题呢?是Delphi的Bug吗?
 
接受答案了.
 
后退
顶部