Foxtable(狐表)用户栏目专家坐堂 → 自动编号生成怎么控制前缀位数


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

主题:自动编号生成怎么控制前缀位数

美女呀,离线,留言给我吧!
慧明和谐
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:30 积分:304 威望:0 精华:0 注册:2012/11/28 12:16:00
自动编号生成怎么控制前缀位数  发帖心情 Post By:2012/12/12 11:36: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 & "'") '取得该类别的最大编号
               
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位的可以计算编号累加   不是2位 累加就报错了  哪里是控制位数的

类别  编号

AB   AB001

AB   AB002

AB   AB003

BC   BC001

ABC ABC001

ABC  报错......

 


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


加好友 发短信
等级:幼狐 帖子:137 积分:947 威望:0 精华:0 注册:2012/10/18 7:20:00
  发帖心情 Post By:2012/12/12 12:13:00 [只看该作者]

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


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/12 13:09:00 [只看该作者]

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

替换成

idx = CInt(max.Substring(lb.Length, 3)) + 1

 回到顶部