我的表格的数据源是一个ADOQUERY
我想改变数量后,
小计就会自动计算
小计=数量*单价

解决方案 »

  1.   

    双击adoquery,在字段列表中加入一个字段,字段类型为Calculated,
    在adoquery的onCalcFields()事件中写入计算代码。
      

  2.   

    小计已经是动态的了,
    我想用一个EDIT显示所有记录的小计总和又要怎能样做啊
      

  3.   

    query1.sql.clear;
    query1.sql.text:='select sum(小计) from tablename';
    query1.open;
    edit1.text:=query1.fields[0].asstring;
      

  4.   

    自己从头到尾加一遍嘛var
      Tot: integer;
    begin
      Tot := 0;
      with ADOQuery1 do begin
        First;
        while not Eof do begin
          Tot := Tot + FieldByName('Amount').AsInteger;
          Next;
        end;
        First;
      end;
    end;
      

  5.   

    procedure TFmain.ADOQuery2AfterScroll(DataSet: TDataSet);
    这是我的代码,麻烦看一看
    begin
    with adoquery3 do
       begin
          close;
          sql.clear;
          sql.Add('select sum(动态小计) as ss from 临时明细');
          open;
       end
       edit6.Text:=adoquery3.fieldbyname('ss').Value;//(341)
    end;[Error] pmain.pas(341): Missing operator or semicolon
      

  6.   

    当然出错了
    你要定义个
    变量var i: integer;
    ......
    i: adoquery3.fields[0].value;
    edit6.text  := inttostr(i); 
    edit不能显示整形的
      

  7.   

    i:= adoquery3.fields[0].value;
    对不起 ,少了个等于号
      

  8.   

    我试着,做了一边觉得问题不大:看我的表(access)--medicine---》price(货币)
    程序:begin
    with Datamodule1.Q_temp do
         begin
           close;
           sql.Clear;
           sql.Add('select sum(price) as ss from medicine');
           open;
         end;
    edit1.Text:=Datamodule1.Q_temp.FieldValues['ss'];
    end;      
    程序运行没有任何问题,你的“edit6.Text:=adoquery3.fieldbyname('ss').Value;//(341)”中3后面用“fieldkkbyname”不正确,因为用“.”后不能自动显示出“fieldbyname“。
      

  9.   

    你计算的PRICE字段是物理存在的,而我的动态小计是计算字段,还是一样报错