当前位置:主页>delphi教程/企业管理软件> 文章内容

各位大哥救命啊!TDBGridEh表格问题!

发布时间:2010-01-27 | QQ免费站
1楼: 我现在TDBGridEh表格有三列:数量、单价及金额三列,单价会自动调出,要求输入数量时金额会自动计算,不是响应回车键,就是数量列的数值变化时金额就会自动计算,TDBGridEh表格的列有没有类似的OnChange事件啊?急!!!

字串9

2楼: 1、可以用计算字段来解决,添加一个计算字段为金额,然后在数据集的OnCalcFields事件里写计算的代码: dataset.fieldbyname(‘金额‘).ascurrency:= dataset.fieldbyname(‘数量‘).ascurrency* dataset.fieldbyname(‘单价‘).ascurrency 2、TField里有OnChange事件,可以在这里面来计算 字串6

3楼: procedure TOrdrForm.DBGrid1ColExit(Sender: TObject); BEGIN if dbgrid1.SelectedIndex=0 then (注:是你數量的位置) TABLE.金额=TABLE.数量*TABLE.单价; END ; 字串8

4楼: 楼上的意思是当光标在这一列输完了以后,离开表格中的当前列或进入其它列时触发此事件。。但我想在用户直接退出时,他就不能够触发这事件了,因此在退出DBGRID操作的事件中,最好也先判断一下有没有加进去,没有的话,进行计算,这样就不会错了。 TDBGRID没有ONCHANGE事件的。 字串8

5楼: 这样的话是不是太麻烦啦,有没有更简单一点的方法呀
字串6

6楼: 晕,这也叫麻烦吗~~~ 添加一个计算字段,或者在一个事件里写代码就完了啊 那你想要怎样的

字串8

7楼: 计算字段不可以的,如果光标离开本列但不离开本行时不会触发计算,3~4楼的方法比较稳妥吧。
字串6

8楼: 这个不算难,还有个问题就是 汇总的问题,总是不能实时改变 金额出来了,但是下面的汇总金额不能跟金额同步

字串3

9楼: 多人接受答案了。 字串9