首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

数量单价金额计算有关问题(一直困扰着)

2013-04-20 
数量单价金额计算问题(一直困扰着)数据库中 有三字段。描述:数量,单价,金额。都可以录入。使用cxgrid与adoque

数量单价金额计算问题(一直困扰着)
数据库中 有三字段。
描述:数量,单价,金额。都可以录入。
      使用cxgrid与adoquery
要求:输入数量单价,自动计算金额
      输入金额,自动计算单价。
目前方式:增加计算字段  clacmoney :=amount*price
         在change事件中 money:=clacmoney;

求助如何处理:输入完成后,单价也可以计算出



procedure TForm1.ADOQuery1CalcFields(DataSet: TDataSet);
var
  n1,n2,n3:real;
begin
   n1:= adoquery1.FieldValues['amount'];
   n2:= adoquery1.FieldValues['price'];
   n3:= adoquery1.FieldValues['money'];
   adoquery1.FieldValues['clacmoney']:=roundto(n1*n2,-2);
   if n1<>0 then
     adoquery1.FieldValues['clacprice']:=roundto(n3/n1,-6);
end;

procedure TForm1.ADOQuery1amountChange(Sender: TField);
begin
  adoquery1.FieldValues['money'] := adoquery1.FieldValues['clacmoney'];
end;

procedure TForm1.ADOQuery1priceChange(Sender: TField);
begin
  adoquery1.FieldValues['money'] := adoquery1.FieldValues['clacmoney'];
end;

[解决办法]
引用:
引用:
要計算單價,你得有數量、金額吧,僅輸入金額怎麼能計算單價?

前提是数量已经录入了。 如果再 money的change事件里面 会出现循环

一般都在數據集的BeforePost事件中處理此類計算,在數據庫中有相應字段,沒必要再加計算字段。
[解决办法]
先进行判断 再计算 如果相等不用计算了
如在输入金额后的触发事件 先判断单价是不是等于 金额÷数量    再进行计算
在输入单价后的触发事件 先判断金额是不是等于 单价×数量  再进行计算

热点排行