看以下代碼.希望能幫到你. procedure TF_SELE.QY_ASELECalcFields(DataSet: TDataSet);//表身計算字段 begin with dataM.QY_ASELE do begin FieldByName('Price2').AsFloat:=FieldByName('PRICE1').AsFloat*FieldByName('COUNT').AsFloat; FieldByName('Count1').AsFloat:=FieldByName('Count').AsFloat; end; end;
procedure TF_SELE.QY_ASELECalcFields(DataSet: TDataSet);//表身計算字段
begin
with dataM.QY_ASELE do
begin
FieldByName('Price2').AsFloat:=FieldByName('PRICE1').AsFloat*FieldByName('COUNT').AsFloat;
FieldByName('Count1').AsFloat:=FieldByName('Count').AsFloat;
end;
end;
記得要加進form的create事件中
adoquery1.oncalefields:=adoquery1calefields
金额就是110了,计算总金额的公式在OnCalcFields事件,我的意思就是
在按下保存按钮后触发OnCalcFields事件,重新计算总金额
该事件在以下情况下会被自动触发:
1、刚打开数据集时
2、数据集进入编辑状态(daEdit)
3、从数据库中重新取回数据后
4、移动记录指针
设置你dataset的计算字段的fieldkind属性:fkCalculated