数量 单价 金额 税率 含税单价 含税单价 税额 价税合计
这些字段都需要保存在后台
在DataChange事件中,
        if Field=nil then exit;
        if not (Field.DataSet.State in [dsedit,dsinsert]) then Exit;
        if (Uppercase(Field.FieldName)='FTAXPRICE') then
        begin //单价=含税单价*100/(税率+100)
        Field.DataSet.FieldByName('FPRICE').AsFloat:=(Field.DataSet.FieldByName('FTAXPRICE').AsFloat* 100 ) / ((Field.DataSet.FieldByName('FTAXRATE').AsFloat) + 100);
        end;
        if (Uppercase(Field.FieldName)='FQTY') OR (Uppercase(Field.FieldName)='FPRICE') then
        begin //金额=单价*数量
        Field.DataSet.FieldByName('FAMOUNT').AsFloat:=(Field.DataSet.FieldByName('FQTY').AsFloat) * (Field.DataSet.FieldByName('FPRICE').AsFloat);
        end;
通过这样的方法写,当含税单价变动,单价=含税单价*100/(税率+100),当单价变动,含税单价=单价*税率/100+单价,当单价和数量有变动时,金额=单价*数量.程序会自动关闭,请问高手,这样的计算该怎么实现?