数量  单价  金额
1    1    1
2    2    4
0    0    7其中:数量,金额列是通过SQL查询计算出来。单价列为平均单价列即:金额/数量。
我可以通过语句从第一行到最后一行,把单价列=金额/数量 计算出来然后写上去。
请问有没有有简单一点的方式另外我在某地方看到 在ADOQURY中增加一列然后在方式Validate中写上代码。

解决方案 »

  1.   

    在cxgrid的某列的GetText事件中写,或者在DrawCell的事件中写
      

  2.   

    改下sql语句,让sql计算
    select (金额 / 单价) as 数量,金额,单价 from table 
      

  3.   

    改下sql语句,让sql计算
    select (金额 / 单价) as 数量,金额,单价 from table 
      

  4.   

    ADOQURY加个虚拟字段,在OnCalcFields写代码procedure TFrmCheckTicket.PersonnelCalcFields(DataSet: TDataSet);
    begin
      Personnel.FieldByName('单价').Asfloat :=
         Personnel.FieldByName('金额').Asfloat /Personnel.FieldByName('金额').Asfloat;   
    end;
      

  5.   

    直接写成Sql语句应该是速度最快的了
      

  6.   

    充分利用sql语句的速度优势,直接写成sql语句吧!
      

  7.   


    TFrmCheckTicket.PersonnelCalcFields 没找到这个。
      

  8.   

    找到了 是到 ADOQ上面去找的 我都跑到 字段属性上去找了