Foxtable(狐表)用户栏目专家坐堂 → 请高手指教一下,


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

主题:请高手指教一下,

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


加好友 发短信
等级:版主 帖子:1693 积分:12123 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/1/5 10:40:00 [显示全部帖子]

你这个逻辑真奇怪
 
按你的条件5
需要得到的条件五: "库存"=1,"补数"=1,"通打数量"=1.     结果为:"通打数量"="合同数量"-("补数"+"通打数量"+"库存")
 
先填合同数量 10
再填 补数 =2       得出  通打数量 = 8
再填 库存 = 1     得出   通打数量 = 10 -(2 + 8 + 1)= -1
 
 
图片点击可在新窗口打开查看

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


加好友 发短信
等级:版主 帖子:1693 积分:12123 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/1/5 11:14:00 [显示全部帖子]

还是理解不了

 

 

上个代码做参考

 

DataColChanged  事件

 

 

If e.DataCol.Name <> "通打数量" Then
    Dim dr As DataRow = e.DataRow
    dr("通打数量") = iif(dr("合同数量") Is Nothing,0,dr("合同数量")) - iif(dr("库存") Is Nothing,0,dr("库存"))- iif(dr("补数") Is Nothing,0,dr("补数"))
End If


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


加好友 发短信
等级:版主 帖子:1693 积分:12123 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/1/5 13:20:00 [显示全部帖子]

建议你不要这么做

 

因为 通打数量  是计算列,其他列的输入会影响他的值,让他参与计算,出错率会很高。就像我楼上提的条件五 一样

 

你可以增加其他输入列来让用户输入

 

 

还有,给你个建议,提问时尽量少用高手、大师之类的词,

 

否则,能帮你的人立马少一半,都避嫌去了。


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


加好友 发短信
等级:版主 帖子:1693 积分:12123 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/1/5 14:26:00 [显示全部帖子]

If e.DataCol.Name<>"通打数量" Then
    Dim dr As DataRow = e.DataRow
    If iif(dr("通打数量") Is Nothing,0,dr("通打数量")) = 0 Then
        dr("通打数量") = iif(dr("合同数量") Is Nothing,0,dr("合同数量")) - iif(dr("库存") Is Nothing,0,dr("库存"))+ iif(dr("补数") Is Nothing,0,dr("补数"))
    Else
        If e.DataCol.Name = "库存" Then
            dr("通打数量") = dr("通打数量") - dr("库存")
        End If
        If e.DataCol.Name = "补数" Then
            dr("通打数量") = dr("通打数量") + dr("补数")
        End If
    End If
End If

 

 

试一下,

 

 


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


加好友 发短信
等级:版主 帖子:1693 积分:12123 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/1/5 14:50:00 [显示全部帖子]

If e.DataCol.Name<>"通打数量" Then
    Dim dr As DataRow = e.DataRow
    If iif(dr("通打数量") Is Nothing,0,dr("通打数量")) = 0 Then
        dr("通打数量") = iif(dr("合同数量") Is Nothing,0,dr("合同数量")) - iif(dr("库存") Is Nothing,0,dr("库存"))+ iif(dr("补数") Is Nothing,0,dr("补数"))
    Else
        If e.DataCol.Name = "库存" Then
            dr("通打数量") = dr("通打数量") - (e.NewValue - e.OldValue)
        End If
        If e.DataCol.Name = "补数" Then
            dr("通打数量") = dr("通打数量") + dr("补数")
            'dr("通打数量") = dr("通打数量") + (e.NewValue - e.OldValue)
        End If
    End If
End If

 回到顶部