Foxtable(狐表)用户栏目专家坐堂 → 关于数量金额反算问题


  共有2977人关注过本帖树形打印复制链接

主题:关于数量金额反算问题

帅哥哟,离线,有人找我吗?
magangzmc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:272 积分:2421 威望:0 精华:0 注册:2013/4/13 10:03:00
关于数量金额反算问题  发帖心情 Post By:2014/7/30 16:56:00 [只看该作者]

假如有数量、单价、金额三个字段,当修改数量的值后时候,金额=数量*单价

当修改单价的值后时候,金额=数量*单价

当修改金额的值后时候,单价=金额/数量

 

我在DataColChanged事件中代码如下

Select Case e.DataCol.Name
    Case "iQuantity"
        e.DataRow("iPrice")=e.NewValue * e.DataRow("iUnitPrice")
    Case "iUnitPrice"
        e.DataRow("iPrice")=e.NewValue * e.DataRow("iQuantity")
    Case "iPrice"
        e.DataRow("iUnitPrice")=e.NewValue / e.DataRow("iQuantity")
End Select

 

当我修改金额的时候,结果会由于重复反算导致与我输入的金额数值有误差,如:

输入数量:7,单价为空,输入金额:20

 

结果就会变成:

数量:7,单价:2.86(计算得出),金额:20.02(由于单价字段值改变了,重新计算金额)

 

如何避免重复计算呀?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/30 17:09:00 [只看该作者]

Select Case e.DataCol.Name
    Case "iQuantity"
        If e.DataRow.Isnull("iPrice")  Then e.DataRow("iPrice")=e.NewValue * e.DataRow("iUnitPrice")
    Case "iUnitPrice"
        If e.DataRow.Isnull("iPrice") Then e.DataRow("iPrice")=e.NewValue * e.DataRow("iQuantity")
    Case "iPrice"
        If e.DataRow.Isnull("iUnitPrice") Then e.DataRow("iUnitPrice")=e.NewValue / e.DataRow("iQuantity")
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/30 17:10:00 [只看该作者]

 或者

 

SystemReady = False
Select Case e.DataCol.Name
    Case "iQuantity"
        e.DataRow("iPrice")=e.NewValue * e.DataRow("iUnitPrice")
    Case "iUnitPrice"
        e.DataRow("iPrice")=e.NewValue * e.DataRow("iQuantity")
    Case "iPrice"
        e.DataRow("iUnitPrice")=e.NewValue / e.DataRow("iQuantity")
End Select
SystemReady = True


 回到顶部