我做的一个系统,有三个字段“水表1本月”,“水表2本月”,“水表本月”,
水表本月=水表1本月+水表2本月
我是在DBGrid中输入的,要求在输入时水表1本月、水表2本月时就自动计算出“水表本月”
,请问如何处理。

解决方案 »

  1.   

    其实设计表不须要第三个字段(水表本月)可以在ADOQuery(Query)中添加一个计算字段'水表本月',类型为Float,在CalcFields写代码:
    procedure TForm1.ADOQuery1CalcFields(DataSet: TDataSet);
    begin
     ADOQuery1.FieldByName('水表本月').AsFloat:= ADOQuery1.FieldByName('水表1本月').AsFloat
                        +ADOQuery1.FieldByName('水表2本月').AsFloat;
    end;***建表尽量别用中文***
      

  2.   

    或者在字段onChange事件中计算:aMonth,bMonth,cMonth分别表示:水表本月,水表1本月,水表2本月
    cMonthChange指向bMonthChangeg事件,就不须要重复写代码了procedure TForm1.ADOQuery1bMonthChange(Sender: TField);
    begin
    ADOQuery1.FieldByName('cMonth').AsFloat:= ADOQuery1.FieldByName('cMonth').AsFloat 
                        +ADOQuery1.FieldByName('bMonth').AsFloat;
    end;
      

  3.   

    可以在DBGrid 的DBGrid1ColEnter事件中加添加代码
    procedure TForm1.DBGrid1ColEnter(Sender: TObject);
    begin
    //do something;
    end;