以文本方式查看主题 - 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=131886) |
-- 作者:一笑 -- 发布时间:2019/3/8 10:51:00 -- DataColChanged代码触发 计划"日期符","自动分组","机号"值发生变化触发事件,修改“日期机号”单元格值,DataColChanged中写入以下: Select Case e.DataCol.Name Case "日期符","自动分组","机号" Dim dr As DataRow = e.DataRow If dr.IsNull("日期符") = False Then dr("日期机号") = dr("日期符") & "/" & dr("机号") & dr("自动分组") End If End Select 实际测试中修改"机号"时只会得出dr("日期符") & "/" & dr("机号"),而未加上"自动分组"的值,例如:三个值分别为20190102,B3155,1,机号B3155改为B3166后“日期机号”应该为20190102/B31661,而实际为20190102/B3166,只有再重置“自动分组”列,才能得出20190102/B31661,求解代码有错吗,谢谢!
|
-- 作者:lur320 -- 发布时间:2019/3/8 11:20:00 -- 可能的情况有好几个。例如是不是计算式列,是不是没有数据。是不是修改“机号”的代码里面没有保存相应的datarow等等,直接在表格里面写字不会触发datacolchanged..... |
-- 作者:有点蓝 -- 发布时间:2019/3/8 11:34:00 -- Select Case e.DataCol.Name Case "日期符","自动分组","机号" Dim dr As DataRow = e.DataRow msgbox(dr("自动分组")) \'弹出什么 If dr.IsNull("日期符") = False Then msgbox(dr("日期符") & "/" & dr("机号") & dr("自动分组") ) \'弹出什么 dr("日期机号") = dr("日期符") & "/" & dr("机号") & dr("自动分组") End If End Select
|
-- 作者:一笑 -- 发布时间:2019/3/8 13:22:00 -- msgbox(dr("自动分组")) \'弹出自动分组号:1 msgbox(dr("日期符") & "/" & dr("机号") & dr("自动分组") ) \'弹出正常,有自动分组号:20190102/B31661 dr("日期机号") = dr("日期符") & "/" & dr("机号") & dr("自动分组") “日期机号” 仍然显示:20190102/B3166
|
-- 作者:有点蓝 -- 发布时间:2019/3/8 14:22:00 -- DataColChanged事件还有没有其他代码,全部打出来,或者上传实例看看 |