Foxtable(狐表)用户栏目专家坐堂 → 自动编号出错


  共有2716人关注过本帖树形打印复制链接

主题:自动编号出错

帅哥哟,离线,有人找我吗?
wangguiwang
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:46 积分:435 威望:0 精华:0 注册:2015/6/6 14:32:00
自动编号出错  发帖心情 Post By:2015/11/10 10:02:00 [只看该作者]

各位老师:请帮忙看下为什么如下代码自动编号会出错,第一条明细是正常的,到了第二条以后就都是一样的编码了,而且一下从001跳到-019了。
图片点击可在新窗口打开查看此主题相关图片如下:自动编号出错.jpg
图片点击可在新窗口打开查看

Select e.DataCol.Name '以下代码为先生成"出入库单据号明细"
    
    Case "出入库单据号"
        If e.DataRow.IsNull("出入库单据号") Then
            e.DataRow("出入库单据号明细") = Nothing
        Else
            Dim lb As String = e.DataRow("出入库单据号")
            If e.DataRow("出入库单据号明细").StartsWith(lb) = False '如果单据出入库单据号明细前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(出入库单据号明细)","出入库单据号 = '" & lb & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该出入库单据号的最大出入库单据号明细
                If max > "" Then '如果存在最大出入库单据号明细
                    idx = CInt(max.Substring(2,3)) + 1 '获得最大出入库单据号明细的后三位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("出入库单据号明细") = lb & Format(idx,"000")
            End If
        End If
End Select



 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/10 10:09:00 [只看该作者]

Select e.DataCol.Name '以下代码为先生成"出入库单据号明细"
    
    Case "出入库单据号"
        If e.DataRow.IsNull("出入库单据号") Then
            e.DataRow("出入库单据号明细") = Nothing
        Else
            Dim lb As String = e.DataRow("出入库单据号") & "-"
            If e.DataRow("出入库单据号明细").StartsWith(lb) = False '如果单据出入库单据号明细前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(出入库单据号明细)","出入库单据号 = '" & lb & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该出入库单据号的最大出入库单据号明细
                If max > "" Then '如果存在最大出入库单据号明细
                    idx = CInt(max.Substring(lb.Length)) + 1 '获得最大出入库单据号明细的后三位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("出入库单据号明细") = lb & Format(idx,"000")
            End If
        End If
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
wangguiwang
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:46 积分:435 威望:0 精华:0 注册:2015/6/6 14:32:00
  发帖心情 Post By:2015/11/10 10:21:00 [只看该作者]

大红袍考师:我用你的这个代码试了下,还是会出错,尾号就都是001了,请帮忙再看下是哪里出了问题。谢谢。
图片点击可在新窗口打开查看此主题相关图片如下:重复编号.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/10 10:23:00 [只看该作者]

Select e.DataCol.Name '以下代码为先生成"出入库单据号明细"
    
    Case "出入库单据号"
        If e.DataRow.IsNull("出入库单据号") Then
            e.DataRow("出入库单据号明细") = Nothing
        Else
            Dim lb As String = e.DataRow("出入库单据号")
            If e.DataRow("出入库单据号明细").StartsWith(lb) = False '如果单据出入库单据号明细前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(出入库单据号明细)","出入库单据号 = '" & lb & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该出入库单据号的最大出入库单据号明细
                If max > "" Then '如果存在最大出入库单据号明细
                    idx = CInt(max.Substring(lb.Length+1)) + 1 '获得最大出入库单据号明细的后三位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("出入库单据号明细") = lb & "-" & Format(idx,"000")
            End If
        End If
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
wangguiwang
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:46 积分:435 威望:0 精华:0 注册:2015/6/6 14:32:00
  发帖心情 Post By:2015/11/10 10:41:00 [只看该作者]

终于可以了,非常谢谢

 回到顶部