关于dbgrid中,修改数据的问题 (50分)

  • 主题发起人 主题发起人 晨空
  • 开始时间 开始时间

晨空

Unregistered / Unconfirmed
GUEST, unregistred user!
设有如下表显示在dbgrid中

单价 数量 总价
0.5 100 50
0.2 50 10
0.1 100 10
当我 在dbgrid 修改 当我把 第一个记录 的 单价 作修改后,焦点移开 所修改的那个
单元格时, 我希望 那个 总价 也相应作 出变化,
比如: 我在 dbgrid中 ,把 0.5 改成 0.3 当用键盘 下移 键 移到 0.2 这个单元格 时
,原 总价中的 50 要 相应 变成 30 ,不知该怎么做.???
 
在sql语句中计算总价
 
总价用计算字段.
 
在dbgrid对应的DataSource的DataSet中"单价"字段中的OnSetText事件写相应的代码,例如:
with DataSet do
begin
//注意加有关对数据合法性的判断
FieldByName('总价').AsString:=Text;
FieldByName('总价').value:=FieldByName('数量').value * FieldByName('单价').value;
end;

 
不知你是否用的table,如果是,在table的beforepost事件中
进行一下处理
和上面的差不多了
 
将总价定义成计算字段,或者在PRICE字段的VALID事件中写代码计算总价,然后将它POST到
字段中
 
在dbgrid的oncolexit事件中写 if dbgird.selectfield='' then .........
 
直接对DataSet操作,然后刷新数据
 
用计算字段是最好的办法。最安全、出错的可能性最小。用SQL语句在本地机器还可以,要是在
数据库放服务器上最好少用SQL语句来更改数据。效率比较低。
 
接受答案了.
 
后退
顶部