毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

dbgrideh修改单价和数量键盘弹起自动计算金额

更新时间:2014-11-25:  来源:毕业论文

1、如果是单一条数据求金额,可以:
(1)在SQL语句插入数据前,计算金额,再Insert;
(2)原有的数据行,Undata前,计算一下金额,再UpData;
2、如果是娄条数据求金额,可以:
通过while Not Eof do失循环语句中,先计算好金额,再UpData;

在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;

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事件中也填上上面的代码,就可以了。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。