100分献上,解决一个小问题。(100分)

  • 主题发起人 主题发起人 闲云野鹤
  • 开始时间 开始时间

闲云野鹤

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是dbgrid,其中有三项是:单价,数量,合计,我想人用户只输入单价和数量
合计由计算机自己计算,重点是在用户输入的时候,每敲一个键的同时dbgrid就立刻
显示合计的数据,请问各位高手怎么做,谢谢

 
在单价字段的onvalidate事件中写
 
在事件那里应该有的,你去看看。
 
ONCOLEXIT
细写在这里是最好的
 
procedure TfrmMain.DBGrid1ColExit(Sender: TObject);
begin
with AdoDs do
begin
if Not(state = dsEdit) then Edit;
FieldValues['inje'] := FieldValues['indj'] * FieldValues['sl'];
FieldValues['outje'] := FieldValues['outdj'] * FieldValues['sl'];
FieldValues['cj'] := FieldValues['outje'] - FieldValues['inje'];
Post;
end;
end;
 
做法:
数据库中此表不要有Total(合计)这个字段,只要Price(单价)和Quantity(数量)字段,
因为此字段值可以用Price*Quantity计算出,所以应该去掉。

然后在连接此表的Table或Query中加一计算字段名为Total(合计),用于在DbGrid中显示。
然后在此Table或Query的OnCalcFields事件中写下如下代码
Table1['Total'] := Table1['Price'] * Table1['Quantity'];
 
用计算字段!!!
 
多谢各位,如期付分
 
后退
顶部