以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]自动编号问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=57487)

--  作者:utcxray
--  发布时间:2014/9/25 15:11:00
--  [求助]自动编号问题

If e.DataCol.Name = "采购日期" Then

    If e.DataRow.IsNull("采购日期") Then

        e.DataRow("采购单号") = Nothing

    Else

        Dim bh As String = Format(e.DataRow("采购日期"),"yyyyMMdd") \'取得编号的8位前缀

        If e.DataRow("采购单号").StartsWith(bh) = False \'如果编号的前8位不符

            Dim max As String

            Dim idx As Integer

            max = e.DataTable.Compute("Max(采购单号)","采购日期 = #" & e.DataRow("采购日期") & "# And [_Identify] <> " & e.DataRow("_Identify")) \'取得该天的最大编号

            If max > "" Then \'如果存在最大编号

                idx = CInt(max.Substring(9,3)) + 1 \'获得最大编号的后三位顺序号,并加1

            Else

                idx = 1 \'否则顺序号等于1

            End If

            e.DataRow("采购单号") = "CGD" & bh & "-" & Format(idx,"000")

        End If

    End If

End If

怎么会出现这种情况呢



此主题相关图片如下:qq图片20140925150725.jpg
按此在新窗口浏览图片


--  作者:有点甜
--  发布时间:2014/9/25 15:13:00
--  

 这样试试

 

If e.DataCol.Name = "采购日期" Then
    If e.DataRow.IsNull("采购日期") Then
        e.DataRow("采购单号") = Nothing
    Else
        Dim bh As String = Format(e.DataRow("采购日期"),"yyyyMMdd") \'取得编号的8位前缀
        If e.DataRow("采购单号").StartsWith(bh) = False \'如果编号的前8位不符
            Dim max As String
            Dim idx As Integer
            max = e.DataTable.Compute("Max(采购单号)","采购日期 = #" & e.DataRow("采购日期") & "# And [_Identify] <> " & e.DataRow("_Identify")) \'取得该天的最大编号
            If max > "" Then \'如果存在最大编号
                idx = CInt(max.Substring(hb.length + 4,3)) + 1 \'获得最大编号的后三位顺序号,并加1
            Else
                idx = 1 \'否则顺序号等于1
            End If
            e.DataRow("采购单号") = "CGD" & bh & "-" & Format(idx,"000")
        End If
    End If
End If


--  作者:utcxray
--  发布时间:2014/9/25 15:14:00
--  
1、表中尚无9月30日的数据,但单号明显不连续。
2、表中尚无10月1日的数据,但第315行和316行的编号明显不对。
3、第311行至314行,第320行中“-”多了一个。
请指点,
代码复制自帮助

--  作者:有点甜
--  发布时间:2014/9/25 15:17:00
--  
 看2楼。