以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  重号拦截失败  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185402)

--  作者:nuoyan89
--  发布时间:2023/2/21 14:29:00
--  重号拦截失败
老师,我把毛坯编码、加工工序、扫码类型等为条件拦截重号的情况,但是还是偶尔有个别的没有拦截住。用系统测试了,也确实能拦截住,但是后面也确实有漏拦截的。请帮忙看看,窗口表事件代码如下:


Select Case e.DataCol.name
    Case "毛坯编码", "加工工序", "扫码类型"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("毛坯编码") = False AndAlso dr.IsNull("加工工序") = False AndAlso dr.IsNull("扫码类型") = False Then
            If DataTables("清洗刻号扫码_工序跟踪表").Compute("Count([_Identify])", "毛坯编码 = \'" & dr("毛坯编码") & "\' And 加工工序 = \'" & dr("加工工序") & "\' And 扫码类型 = \'" & dr("扫码类型") & "\'") > 1 Then
                MessageBox.Show("工序重号,重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
                e.DataRow(e.DataCol.Name) = e.OldValue \'取消输入
            ElseIf DataTables("工序跟踪表").sqlCompute("Count([_Identify])", "毛坯编码 = \'" & dr("毛坯编码") & "\' And 加工工序 = \'" & dr("加工工序") & "\' And 扫码类型 = \'" & dr("扫码类型") & "\'") > 0 Then
                MessageBox.Show("工序重号,重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
                e.DataRow(e.DataCol.Name) = e.OldValue \'取消输入
            End If
        End If
End Select

--  作者:有点蓝
--  发布时间:2023/2/21 14:39:00
--  
多人并发的情况下需要马上保存
……
                MessageBox.Show("工序重号,重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
                e.DataRow(e.DataCol.Name) = e.OldValue \'取消输入
else
e.DataRow.save
            End If
        End If
End Select