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


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

主题:自动编号

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


加好友 发短信
等级:幼狐 帖子:101 积分:715 威望:0 精华:0 注册:2017/8/18 15:07:00
自动编号  发帖心情 Post By:2018/2/5 13:30:00 [只看该作者]

在表的DataRowAdding 写了下面代码,

Dim d As Date=Date.Today '以当天的年月作为编号的前6位
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim bh As String = Format(d,"yyyy-MM")

Dim max As String
Dim idx As Integer
max = e.DataTable.Compute("max(产品编号)","Substring(产品编号,1,4)= & y &  and Substring(产品编号,5,2)= & m & ")   ‘查找年,月相同的编号的最大编号
  If max > "" Then '如果存在最大编号
idx = CInt(max.Substring(8,3)) + 1 '获得最大编号的后三位顺序号,并加1
Else
    idx = 1 '否则顺序号等于1
End If
e.DataRow("产品编号") = bh & "-" & Format(idx,"000")


编号不会增加
[此贴子已经被作者于2018/2/5 14:33:34编辑过]

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


加好友 发短信
等级:幼狐 帖子:101 积分:715 威望:0 精华:0 注册:2017/8/18 15:07:00
  发帖心情 Post By:2018/2/5 13:31:00 [只看该作者]

产品编号 2017-12-001  这样的格式

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


加好友 发短信
等级:幼狐 帖子:101 积分:715 威望:0 精华:0 注册:2017/8/18 15:07:00
  发帖心情 Post By:2018/2/5 14:29:00 [只看该作者]

知道原因在哪了,新版的SUBTRING 的参数设定更改了,老版本是从0 开始算的, 新版本是1开始的

但编号不会自动 查找最大编号的写法还有错误,请老师帮忙改下
[此贴子已经被作者于2018/2/5 14:34:43编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/5 14:47:00 [只看该作者]

 
Dim d As Date=Date.Today '以当天的年月作为编号的前6位
Dim bh As String = Format(d,"yyyy-MM")

Dim max As String
Dim idx As Integer
max = e.DataTable.Compute("max(产品编号)","产品编号 like '" & bh & "%'")   ‘查找年,月相同的编号的最大编号
If max > "" Then '如果存在最大编号
    idx = CInt(max.Substring(bh.length+1,3)) + 1 '获得最大编号的后三位顺序号,并加1
Else
    idx = 1 '否则顺序号等于1
End If
e.DataRow("产品编号") = bh & "-" & Format(idx,"000")
 
[此贴子已经被作者于2018/2/5 14:47:35编辑过]

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


加好友 发短信
等级:幼狐 帖子:101 积分:715 威望:0 精华:0 注册:2017/8/18 15:07:00
  发帖心情 Post By:2018/2/6 12:48:00 [只看该作者]

可以正常使用了,谢谢

 回到顶部