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


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

主题:自动编号

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


加好友 发短信
等级:三尾狐 帖子:706 积分:4908 威望:0 精华:0 注册:2016/5/17 12:03:00
自动编号  发帖心情 Post By:2016/12/27 23:14:00 [只看该作者]

在订单表的datacolchanged写入自动编号的代码,某一天产生第一个编号是正常的,只有这一天产生第二个编号,就生成不了:该编号已存在!,不知道是什么原因?请老师看看下面的代码:
查了很久了,找不到原因。
Select Case e.DataCol.Name
    Case "订单日期","销售人员"
        If e.DataRow.IsNull("订单日期") = True OrElse e.DataRow.Isnull("销售人员") = True Then
            e.DataRow("订单编号") = Nothing
        Else
            Dim lb As String = "HD" & getpy(e.DataRow("销售人员"),True) & Format(e.DataRow("订单日期"),"yyMMdd")
            If e.DataRow("订单编号").StartsWith(lb) = False Then '如果单据编号前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.SQLCompute("Max(订单编号)","订单编号 like 'lb%' And [_Identify] <> " & e.DataRow("_Identify")) '取得该类别的最大编号            
               If max > "" Then '如果存在最大编号
                    idx = CInt(max.SubString(lb.length,2)) +1 '获得最大编号的后两位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("订单编号") = lb & Format(idx,"00")
                e.DataRow.Save
            End If
        End If
End Select

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110594 积分:562866 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/28 8:31:00 [只看该作者]

max = e.DataTable.SQLCompute("Max(订单编号)","订单编号 like '" & lb & "%' And [_Identify] <> " & e.DataRow("_Identify")) '取得该类别的最大编号


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


加好友 发短信
等级:三尾狐 帖子:706 积分:4908 威望:0 精华:0 注册:2016/5/17 12:03:00
  发帖心情 Post By:2016/12/28 9:28:00 [只看该作者]

谢谢老师!

 回到顶部