Foxtable(狐表)用户栏目专家坐堂 → datacolchanged遇到问题


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

主题:datacolchanged遇到问题

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


加好友 发短信
等级:童狐 帖子:238 积分:1807 威望:0 精华:0 注册:2020/2/3 11:16:00
datacolchanged遇到问题  发帖心情 Post By:2022/12/26 18:52:00 [只看该作者]

Dim dr As DataRow = e.DataRow
Case  "调度操作_车费","车费垫付", "车费报销", "车费员工", "车费公司"
        If dr.IsNull("车费垫付") = False Then           
            If dr("车费垫付") = "员工" Then
                dr("车费员工") = dr("调度操作_车费")
                dr("车费公司") = 0
            End If
            If dr("车费垫付") = "公司" Then
                If dr("车费报销") = True Then
                    dr("车费公司") = dr("调度操作_车费")
                    dr("车费员工") = 0
                Else
                    dr("车费公司") = 0
                    dr("车费员工") = 0
                End If
            End If
        End If

代码如上,输入调度操作_车费新值时,比如车费垫付是员工时,车费员工的金额不会更新,不过刷新车费垫付列,又可以做到更新,不知道什么原因,麻烦老师指点一下!

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/26 19:55:00 [只看该作者]

"调度操作_车费"是表达式列?

贴出完整代码

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


加好友 发短信
等级:童狐 帖子:238 积分:1807 威望:0 精华:0 注册:2020/2/3 11:16:00
  发帖心情 Post By:2022/12/26 20:38:00 [只看该作者]

不是表达式列,就是车费的金额

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


加好友 发短信
等级:童狐 帖子:238 积分:1807 威望:0 精华:0 注册:2020/2/3 11:16:00
  发帖心情 Post By:2022/12/26 20:44:00 [只看该作者]

车费报销是逻辑列,车费垫付有员工和公司两个选项,其它的都是数据列,金额来的。希望实现的是,调度操作车费变更了,如果是员工垫付就同时更车费员工列的金额
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.name
Case  "调度操作_车费","车费垫付", "车费报销", "车费员工", "车费公司"
        If dr.IsNull("车费垫付") = False Then           
            If dr("车费垫付") = "员工" Then
                dr("车费员工") = dr("调度操作_车费")
                dr("车费公司") = 0
            End If
            If dr("车费垫付") = "公司" Then
                If dr("车费报销") = True Then
                    dr("车费公司") = dr("调度操作_车费")
                    dr("车费员工") = 0
                Else
                    dr("车费公司") = 0
                    dr("车费员工") = 0
                End If
            End If
        End If
end select

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/26 20:49:00 [只看该作者]

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.name
Case  "调度操作_车费","车费垫付", "车费报销"
msgbox(dr.IsNull("车费垫付"))
msgbox(dr("调度操作_车费"))
        If dr.IsNull("车费垫付") = False Then           
msgbox(dr("车费垫付"))
            If dr("车费垫付") = "员工" Then
                dr("车费员工") = dr("调度操作_车费")
msgbox(“车费员工赋值后=” & dr("车费员工"))
                dr("车费公司") = 0
            elseIf dr("车费垫付") = "公司" Then
msgbox(dr("车费报销") )
                If dr("车费报销") = True Then
                    dr("车费公司") = dr("调度操作_车费")
msgbox(“车费公司赋值后=” & dr("车费公司"))
                    dr("车费员工") = 0
                Else
                    dr("车费公司") = 0
                    dr("车费员工") = 0
                End If
            End If
        End If
end select

 回到顶部
帅哥哟,离线,有人找我吗?
温馨的大树
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:238 积分:1807 威望:0 精华:0 注册:2020/2/3 11:16:00
  发帖心情 Post By:2022/12/27 2:12:00 [只看该作者]

谢谢老师,解决了问题,我看了下不同的地方就是,我的代码里面caes 多了 "车费员工", "车费公司"这两个列名,就出现我说的问题了,为什么会这样呢?

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/27 9:01:00 [只看该作者]

需要赋值的列,不放到case里。case里是数据更改后要做后续处理的列

 回到顶部