以文本方式查看主题

-  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事件还有没有其他代码,全部打出来,或者上传实例看看