以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]同主编号下的子编号限制问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178260)

--  作者:秋夜凉了
--  发布时间:2022/6/26 10:17:00
--  [求助]同主编号下的子编号限制问题

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

老师请问范围在fox中怎么写
同编号比如ABC2022  子件号1-5,如出现子件 2-5 也给他限制了。
子编号1-5是1,2,3,4,5个数的意思
Select Case e.DataCol.name
    Case "编号_批次", "编号_序列"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("编号_批次") = False AndAlso dr.IsNull("编号_序列") = False Then
            For Each s As String In dr("编号_序列").split(",")
                If s > "" Then
                    If e.DataTable.Compute("Count([_Identify])", "编号_批次 = \'" & dr("编号_批次") & "\' And 编号_序列 like \'%" & s & "%\'") > 1 Then
                        MessageBox.Show("已经存在相同子编号,请仔细核对产品子编号!", "友情提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
                        e.DataRow(e.DataCol.Name) = e.OldValue \'取消输入
                        Exit For
                    End If
                End If
            Next
        End If
End Select

--  作者:有点蓝
--  发布时间:2022/6/26 20:27:00
--  
看看查询条件是什么?

msgbox("编号_批次 = \'" & dr("编号_批次") & "\' And 编号_序列 like \'%" & s & "%\'")

--  作者:秋夜凉了
--  发布时间:2022/6/27 8:36:00
--  
条件就是同一批次下的序列号不允许有重复。
这序列号包含的是范围内,比如1-5,输入2-5就允许

--  作者:秋夜凉了
--  发布时间:2022/6/27 8:37:00
--  回复:(有点蓝)看看查询条件是什么?msgbox("编号_批...
条件就是同一批次下的序列号不允许有重复。
这序列号包含的是范围内,比如1-5,输入2-5就不允许
[此贴子已经被作者于2022/6/27 8:36:56编辑过]

--  作者:有点蓝
--  发布时间:2022/6/27 8:40:00
--  
为什么要dr("编号_序列").split(",")拆分,序列里面会有多个编号?
--  作者:秋夜凉了
--  发布时间:2022/6/27 8:58:00
--  回复:(有点蓝)为什么要dr("编号_序列").split(",")...
是的,有很多个体
--  作者:有点蓝
--  发布时间:2022/6/27 9:34:00
--  
If e.DataTable.Compute("Count([_Identify])", "编号_批次 = \'" & dr("编号_批次") & "\' And \',\'+编号_序列+\',\' like \'%," & s & ",%\'") > 1 Then