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


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

主题:请高手指教一下,

帅哥哟,离线,有人找我吗?
逛逛
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 

 

试一下,

 

 


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


加好友 发短信
等级:小狐 帖子:383 积分:2757 威望:0 精华:0 注册:2011/9/1 14:26:00
  发帖心情 Post By:2014/1/5 14:35:00 [只看该作者]

有一个这样变化,  当在库存里面输入5的时候,通打数量为5,  当把库存里面的数改为4时通条打里面的数量为1,这段运算就不对,当库存里面的数由5变4的时候,通打数量里面的值应是加,不是减,也就是库存里面的值变小的情况,通打数量里面为加,反之 库存里面的值变大的情况,通打数量里面为减,  其它的运算结果都是如意的,还有帮看一下

 回到顶部
帅哥哟,离线,有人找我吗?
逛逛
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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


加好友 发短信
等级:小狐 帖子:383 积分:2757 威望:0 精华:0 注册:2011/9/1 14:26:00
  发帖心情 Post By:2014/1/6 15:12:00 [只看该作者]

13楼的代码是对谢谢,不过有一个问题,就是在原表中加入一个列,这个列与前面的几个列不发生关系,但是我在加入列中填写内容后,通打数量列中会自动出现数字, 要如何更改代码.

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/1/6 15:15:00 [只看该作者]

If e.DataCol.Name<>"通打数量" andalso e.datacol.name <> "你新增的列名" Then

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


加好友 发短信
等级:小狐 帖子:383 积分:2757 威望:0 精华:0 注册:2011/9/1 14:26:00
  发帖心情 Post By:2014/1/6 16:12:00 [只看该作者]

我的意思是,这段代码是对的,  但是我这个表不光就这几列, 以后会增加很多列,  但是在除了这几个运算列之外,在别的任何一列输入内容后, 通打数里面就自动引用合同数量里的数,
我想得到的结果是这段代码只针对这几个运算列,和别的列不发生关系.

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/1/6 16:13:00 [只看该作者]

select case e.datacol.name
     case "列1","列2","你希望指定触发的所有列名"
        执行的代码写到这里
        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 select

 回到顶部
总数 17 上一页 1 2