以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 如何不让Find自己的行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97904)

--  作者:2900819580
--  发布时间:2017/3/20 21:02:00
--  [求助] 如何不让Find自己的行
Select Case e.DataCol.Name
    Case "规格","封装"
        If  dr("规格") = Nothing And dr("封装") = Nothing Then
            dr("查找列")= ""
        Else
            dr("查找列")=dr("规格") & "|" & dr("封装")
        End If
        \'  MessageBox.Show(dr("查找列"))
        If dr.IsNull("规格") = False AndAlso dr.IsNull("封装") = False Then
            Dim dr1 As DataRow = e.DataTable.Find("规格 =\'" & dr("规格") & "\' and 封装 =\'" & dr("封装") & "\'")
            If dr1 IsNot Nothing Then                
                MessageBox.Show(dr("规格") & "|" & dr("封装") & ":已有相同的物料封装")
                dr.Delete
            End If
        End If

--  作者:有点蓝
--  发布时间:2017/3/20 21:13:00
--  
代码放到DataColChanging事件


Select Case e.DataCol.Name
    Case "规格","封装"
        Dim dr As DataRow = e.DataRow
        If  dr.IsNull("规格") OrElse dr.IsNull("封装")Then
            dr("查找列")= ""
        Else
            Dim dr1 As DataRow = e.DataTable.Find("规格 =\'" & dr("规格") & "\' and 封装 =\'" & dr("封装") & "\'")
            If dr1 IsNot Nothing Then
                MessageBox.Show(dr("规格") & "|" & dr("封装") & ":已有相同的物料封装")
                e.Cancel = True
                Return
            End If
            dr("查找列")=dr("规格") & "|" & dr("封装")
        End If
end select