dbgrideh批改单价和数量 自动计算金额

dbgrideh修改单价和数量 自动计算金额
dbgrideh修改单价和数量 键盘弹起     自动计算金额
------解决思路----------------------
引用:
Quote: 引用:

在datasource的onUpdateData和grideh的onColExit下加入。

  with grid_E_sub do
    begin
    if not (q_e_sub.State in [dsInsert, dsEdit]) then q_e_sub.Edit;
    field_name:=UpperCase(SelectedField.FieldName);
       if (field_name='T_PRICE') then      //改动结算价格
      begin
Fields[FieldColumns['t_sums'].index].AsVariant:=Fields[FieldColumns['nums'].index].AsVariant*Fields[FieldColumns['t_price'].index].AsVariant; 
      end;
      end;


能说详细点吗??   修改dbgrideh表格中单价和数量     此时的数据没有保存到数据库里 


grid_e_sub就是你的dbgrideh,q_e_sub就是adoquery,
在grid_esub的datasource控件的onUpdateData事件上加上下面的代码
  with grid_E_sub do
    begin
    if not (q_e_sub.State in [dsInsert, dsEdit]) then q_e_sub.Edit;
    field_name:=UpperCase(SelectedField.FieldName);
       if (field_name='T_PRICE') then      //T_price为价格
      begin
Fields[FieldColumns['t_sums'].index].AsVariant:=Fields[FieldColumns['nums'].index].AsVariant*Fields[FieldColumns['t_price'].index].AsVariant; 
      end;
       if (field_name='nums') then      //nums为价格  t_sums为金额字段
      begin
Fields[FieldColumns['t_sums'].index].AsVariant:=Fields[FieldColumns['nums'].index].AsVariant*Fields[FieldColumns['t_price'].index].AsVariant; 
      end;
      end;

grid_e_sub控件的onColExit事件中也填上上面的代码,就可以了。

你试试。