以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  原来有效的代码,现在不执行了  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173239)

--  作者:edisontsui
--  发布时间:2021/11/20 10:22:00
--  原来有效的代码,现在不执行了
\'更新所应用的产品
If e.DataCol.Name = "模具型号" Then 
    e.DataRow("所应用的产品") = Nothing
    Dim Filter91 As String = "[模具型号] = \'" & e.DataRow("模具型号") & "\'"
    Dim drs91 As List(Of DataRow) = DataTables("物料字典").Select(Filter91)
    For Each dr91 As DataRow In drs91
        If dr91 IsNot Nothing 
            If e.DataRow("所应用的产品") = Nothing
                e.DataRow("所应用的产品") = dr91("物料编号")
            Else
                e.DataRow("所应用的产品") = e.DataRow("所应用的产品") & "," & dr91("物料编号")
            End If
        End If
    Next
End If

上面的代码是在 datacolchanged 里面的,以前一直都没问题的,但是现在发现它不执行了,也没有任何警告。请问是什么原因?

--  作者:有点蓝
--  发布时间:2021/11/20 10:35:00
--  
物料字典没有符合条件的数据,或者没有加载符合条件的数据。

代码可以改进一下

If e.DataCol.Name = "模具型号" Then 
    e.DataRow("所应用的产品") = Nothing
    Dim Filter91 As String = "[模具型号] = \'" & e.DataRow("模具型号") & "\'"
    dim s as string = e.DataRow("所应用的产品") & "," DataTables("物料字典").GetComboListString("物料编号",Filter91).replace("|",",")
msgbox(s) \'自行调试一下,如果能够弹出来,说明事件正常执行了,如果没有值,说明没有符合条件的数据
    e.DataRow("所应用的产品") = s.trim(",")
End If

--  作者:edisontsui
--  发布时间:2021/11/20 13:09:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:图片1.jpg
图片点击可在新窗口打开查看

出现上述警告。

--  作者:有点蓝
--  发布时间:2021/11/20 14:07:00
--  
输漏一个符号,很简单的错误,不用就等着我们来改吧

dim s as string = 
e.DataRow("所应用的产品") & "," & DataTables("物料字典").GetComboListString("物料编号",Filter91).replace("|",",")
--  作者:edisontsui
--  发布时间:2021/11/20 16:43:00
--  
我试过加这个符号,还是有其他问题:

图片点击可在新窗口打开查看此主题相关图片如下:图片2.jpg
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2021/11/20 16:48:00
--  
那是这个事件前面也定义了一个名称为s的变量,重复了,换个名称使用即可