关于在DBGRID中移动到下一条记录时自动计算的问题

jingchou 2003-10-16 11:53:18
在DBGRID中,有字段数量、单价、总额等,当修改记录时,用户修改了第一条记录的数量值,再按向下移动的箭头键移动到下一条记录时,我想DBGRID能自动计算出总额=数量*单价。
我不知怎么处理才不会出错.请教大家解决一下,谢谢!
...全文
82 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
boycenchen 2003-10-17
  • 打赏
  • 举报
回复
你的数据库不用宗总额字段,新建一个计算字段,再在dataset或query等数据集的oncalculfields方法写上你的计算公式就可以了。我刚刚做了类似的dbgrid.具体可以看看calculated的帮助。
47522341 2003-10-17
  • 打赏
  • 举报
回复
在数据集的oncalcfields事件里写不行吗;
noil0125 2003-10-16
  • 打赏
  • 举报
回复
在字段的ONCHANGE事件中
if (table1.FieldByName('单价').AsString<>'')and( if (adot.FieldByName('数量').AsString<>'')then
begin
table1.Edit;
table1.FieldByName('总额').AsFloat:=table1.FieldByName('单价').AsFloat*table1.FieldByName('数量').AsFloat;
table1.Post;
end;
jingchou 2003-10-16
  • 打赏
  • 举报
回复
修改数量后,按回车或用鼠标指向下一条记录时,就能正确自动计算;但按箭头键移动到下一条记录时,却出现错误:STACK OVERFLOW.
noil0125 2003-10-16
  • 打赏
  • 举报
回复
table点右键,fields editor,ctrl+f5,选择一个字段,添加OnChange属性,然后,可添加代码:
jingchou 2003-10-16
  • 打赏
  • 举报
回复
noil0125(珏心):你好!谢谢你的解答,你所说的在字段的ONCHANGE事件中添加代码,但我是从
DBGRID中输入数量值,不是在EDIT控件中输入.我在DBGRID找不到ONCHANGE事件,在EDIT控件中
才有此事件.麻烦你再给我指点.

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧