以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]大神帮忙看看datacolchanging及changed代码为啥有时候不灵  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=169239)

--  作者:ade2015
--  发布时间:2021/6/8 11:08:00
--  [求助]大神帮忙看看datacolchanging及changed代码为啥有时候不灵
各位大神帮忙看看:
  以下这段代码是不是写的太菜,还是没有加入判断语句什么的。
我放在datacolchanged和changing,有的时候不灵:(表和窗口都是 {列表项目输入的} )
   比如【项目类型】列中选择“方案”,但是 【生产状态】的列会自动改变或输入,但是【设计状态】的就可以。。。

有的时候是可以的,有的时候不行,(试过changing和changed,因为有时候是OK的,字节都是对得上)
   

If e.DataCol.Name = "项目类型" Then
    Dim lx As String = e.newvalue
    Select Case lx
     Case "方案"
         e.DataRow("生产状态") = "不需要生产"
         e.DataRow("设计状态") = "设计待分配"
     Case "生产案"
         e.DataRow("生产状态") = "生产未受理"
         e.DataRow("设计状态") = "不需要设计"
     Case "设计案"
         e.DataRow("生产状态") = "待图纸下发"
         e.DataRow("设计状态") = "设计待分配"
    End Select
End If

If e.DataCol.Name = "设计状态" Then
    Dim sz As String = e.newvalue
    Select Case sz
     Case "设计待分配"
         e.DataRow("生产状态") = "待图纸下发"
     Case "设计中"
         e.DataRow("生产状态") = "待图纸下发"
     Case "设计已"
         e.DataRow("生产状态") = "生产未受理"
    End Select
End If

--  作者:有点蓝
--  发布时间:2021/6/8 11:14:00
--  
调换下位置,先给设计状态赋值

If e.DataCol.Name = "项目类型" Then
    Dim lx As String = e.newvalue
    Select Case lx
     Case "方案"
         e.DataRow("设计状态") = "设计待分配"
         e.DataRow("生产状态") = "不需要生产"
     Case "生产案"
         e.DataRow("设计状态") = "不需要设计"
         e.DataRow("生产状态") = "生产未受理"
     Case "设计案"
         e.DataRow("设计状态") = "设计待分配"
         e.DataRow("生产状态") = "待图纸下发"
    End Select
End If