每行记录都需要汇总!
我的数据库中存在商品资料,仓库资料,入库数量,出库数量
然后我显示的结构是:
商品资料 仓库 入库数量 出库数量 当前库存(我摄制的是计算型)
Nokia7200 主仓库 100 0 100
Nokia7200 主仓库 0 20 80
Nokia7200 主仓库 10 0 90
Nokia7200 主仓库 0 10 80
Nokia7200 主仓库 0 10 70
Nokia7200 主仓库 0 26 44
Nokia7200 主仓库 0 16 10
Nokia7200 主仓库 0 10 0
现在我已经实现了,但是当数据量很大的时候速度总是很慢,大家看看有什么好的办法,给点建议,
我以前实现的办法是:(我显示的时候也需要显示行号所以加上了ID)
Procedure TDM_ResAccount.qry_ResAccountDetailCalcFields(DataSet: TDataSet);
Var
qryTemp: TADOQuery;
a: double;
Begin
// Inc(tt);
With DataSet Do
Begin
If DataSet.RecNo > 0 Then
FieldByName('ID').AsInteger := RecNo
Else
FieldByName('ID').AsInteger := 1;
qryTemp := TADOQuery.Create(Self);
qryTemp.Clone(TADOQuery(DataSet));
With DataSet Do
Begin
With qryTemp Do
Begin
first;
a := 0;
While Not Eof Do
Begin
a := a + FieldByName('InNumber').AsFloat -
FieldByName('OutNumber').AsFloat;
If RecNo = DataSet.FieldByName('ID').AsInteger Then
break;
Next;
End;
End;
FieldByName('Remain').AsFloat := a;
End;
qryTemp.free;
End;
End;