以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- datacolchanged遇到问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184727) |
-- 作者:温馨的大树 -- 发布时间:2022/12/26 18:52:00 -- datacolchanged遇到问题 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 代码如上,输入调度操作_车费新值时,比如车费垫付是员工时,车费员工的金额不会更新,不过刷新车费垫付列,又可以做到更新,不知道什么原因,麻烦老师指点一下!
|
-- 作者:有点蓝 -- 发布时间:2022/12/26 19:55:00 -- "调度操作_车费"是表达式列? 贴出完整代码
|
-- 作者:温馨的大树 -- 发布时间:2022/12/26 20:38:00 -- 不是表达式列,就是车费的金额 |
-- 作者:温馨的大树 -- 发布时间: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
|
-- 作者:有点蓝 -- 发布时间: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
|
-- 作者:温馨的大树 -- 发布时间:2022/12/27 2:12:00 -- 谢谢老师,解决了问题,我看了下不同的地方就是,我的代码里面caes 多了 "车费员工", "车费公司"这两个列名,就出现我说的问题了,为什么会这样呢? |
-- 作者:有点蓝 -- 发布时间:2022/12/27 9:01:00 -- 需要赋值的列,不放到case里。case里是数据更改后要做后续处理的列 |