我现在遇到了编程问题,希望能设计一个自定义计算字段功能,但是问题出在不知道如何,重新编写onCalcFields事件。请高手指点,如果问题解决,在加送200分!

解决方案 »

  1.   

    你的信用怎么才94?不结贴?????
    procedure TzipfFrm.ADOQuery4CalcFields(DataSet: TDataSet);
    begin
      ADOQuery4.FieldByName('Calculated').AsFloat :=
        ADOQuery3.FieldByName('FeedMete').AsFloat *
        ADOQuery4.FieldByName('pabulumMete').AsFloat;
    end;procedure TzipfFrm.ADOQuery2CalcFields(DataSet: TDataSet);
    begin
      ADOQuery2.FieldByName('yyzhl').AsFloat :=
        ADOQuery1.FieldByName('PFMete').AsFloat *
        ADOQuery2.FieldByName('pabulumMete').AsFloat;
      FMaxpabulum := PublicClass.GetMaxpabulumMete(DataModuleFrm.LSB_ADOQuery,
        ADOQuery2.FieldByName('PFCode').AsString);
      Edit1.Text := FloatToStr(FMaxPabulum);
      Edit2.Text := PublicClass.GetPabulumCode(DataModuleFrm.LSB_ADOQuery,FMaxpabulum);
    end;----------------
    沉沦中..........
      

  2.   

    procedure TForm1.Query1CalcFields(DataSet: TDataSet);
    begin
      query1.FieldByName('fieldname').Value:=...;
      query1.Fields[i].Value:=...;
    end;
      

  3.   

    去找下李维的ado mts/com+编程这本书第二章里有详细的讲解。
      

  4.   

    你的意思是动态的绑定计算的过程吧!
    porcedure QueryMasterAfterOpen(DataSet: TDataSet);动态绑定
    QueryMaster.OnCalcFields:= QueryMasterAfterOpen;
    修改的时候可以指向另一个过程,参数必须为TDataSet
      

  5.   

    我是想动态编写计算的过程。我的计算字段名字和计算公式都放在数据库的表中,例如:
    字段名:'CalcFld1'  公式: 'Field1+Field2+Field3/Field4'
    希望解析成:   Fieldbyname('CalcFld1').asCurrency:=Fieldbyname('Field1').asCurrency+Fieldbyname('Field2').asCurrency+Fieldbyname('Field3').asCurrency/Fieldbyname('Field3').asCurrency;并把解析出来的语句,添加到onCalcFields函数中去!