把DBGride连的TDataSource的DataSet属性设为TQuery。在设SQL为:
“select  单价,数量,sum(单价) as '合计' from 表名”
然后在按键时:TQuery.close,TQuery.open;

解决方案 »

  1.   

    onColumnExit
    or 计算字段
      

  2.   

    我在系统中采用Table/Query(dbgrid对应的Dataset)的AfterInsert/AfterEdit方法中填写
    代码: 
      if (not Field1.IsNull) and (not Field2.IsNull) then
        Field3.asfloat:=Field1.asFloat*Field2.AsFloat;
      

  3.   

    并不赞成你这么做,效率很低,实际上你要截获用户在单价和数量中的所有按键操作,还要判断是不是数字键,真的效率很低,不过实现并不算复杂,在DBGrid的Keypress中判断就行了,如果按键是数字键或者小数点,就计算合计,不过记住一定要try...except...end,你这样的实现方法,很多错误是无法判断或者说判断的效率是非常低的,直接捕获异常是个直接了当的解决办法
      

  4.   

    to 楼上,你试试用keypress做做看,今天前来结分解决办法我用了一个悬挂的输入框来代替dbgrid本身中的edit