以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]涉及到数据加载自动编号的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96581)

--  作者:jm20116
--  发布时间:2017/2/23 15:53:00
--  [求助]涉及到数据加载自动编号的问题
下面这段代码,使用窗体时新增时,只对已加载的进行自动编号,新增记录会在后台数据库出现重复编号的问题,把Compte改为SQLcompute后,发现新增后编号都是一样的

If e.DataCol.Name = "生产日期" Then
    If e.DataRow.isnull("生产日期") = True Then
        e.DataRow("入库单号") = Nothing
    Else
        Dim bh As String = "SC-" & Format(e.DataRow("生产日期"),"yyMMdd")
        If e.DataRow("入库单号").startswith(bh) = False Then
            Dim idx As Integer
            Dim max As String
            max = DataTables("产品入库表").Compute("max(入库单号)","入库单号 like \'" & bh & "*\'")
            If max > ""  Then
                idx = cint(max.Substring(9,3)) + 1      
            Else
                idx = 1
            End If
            e.DataRow("入库单号")  = bh & Format(idx,"000")
        End If
    End If
End If
[此贴子已经被作者于2017/2/23 16:14:25编辑过]

--  作者:有点色
--  发布时间:2017/2/23 15:57:00
--  
If e.DataCol.Name = "生产日期" Then
    If e.DataRow.isnull("生产日期") = True Then
        e.DataRow("入库单号") = Nothing
    Else
        Dim bh As String = "SC-" & Format(e.DataRow("生产日期"),"yyMMdd")
        If e.DataRow("入库单号").startswith(bh) = False Then
            Dim idx As Integer
            Dim max As String
            max = DataTables("产品入库表").SqlCompute("max(入库单号)","入库单号 like \'" & bh & "*\'")
            If max > ""  Then
                idx = cint(max.Substring(9,3)) + 1      
            Else
                idx = 1
            End If
            e.DataRow("入库单号")  = bh & Format(idx,"000")
            e.DataRow.Save
        End If
    End If
End If

--  作者:jm20116
--  发布时间:2017/2/23 16:13:00
--  
还是不行,我上传了附件,麻烦你帮看《产品入库表》,谢谢啦
--  作者:有点色
--  发布时间:2017/2/23 16:14:00
--  

 

If e.DataCol.Name = "生产日期" Then
    If e.DataRow.isnull("生产日期") = True Then
        e.DataRow("入库单号") = Nothing
    Else
        Dim bh As String = "SC-" & Format(e.DataRow("生产日期"),"yyMMdd")
        If e.DataRow("入库单号").startswith(bh) = False Then
            Dim idx As Integer
            Dim max As String
            max = DataTables("产品入库表").SqlCompute("max(入库单号)","入库单号 like \'" & bh & "%\'")
            If max > ""  Then
                idx = cint(max.Substring(9,3)) + 1      
            Else
                idx = 1
            End If
            e.DataRow("入库单号")  = bh & Format(idx,"000")
            e.DataRow.Save
        End If
    End If
End If
[此贴子已经被作者于2017/2/23 16:14:27编辑过]

--  作者:jm20116
--  发布时间:2017/2/23 16:17:00
--  
可以了,谢谢