Foxtable(狐表)用户栏目专家坐堂 → 关于帮助中“自动编号生成方法”一节的疑惑


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

主题:关于帮助中“自动编号生成方法”一节的疑惑

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


加好友 发短信
等级:婴狐 帖子:99 积分:1589 威望:0 精华:0 注册:2011/9/19 0:57:00
关于帮助中“自动编号生成方法”一节的疑惑  发帖心情 Post By:2012/3/17 3:19: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("日期") & "#") '取得该天的最大编号
           
If max > "" Then '如果存在最大编号
                idx = CInt(max.Substring(
9,3)) + 1 '获得最大编号的后三位顺序号,并加1
           
Else
                idx =
1 '否则顺序号等于1
           
End If
            e.
DataRow("编号") = bh & "-" & Format(idx,"000")
        End
If
    End
If
End
If

 

然而在实践中发现,却是有缺陷,这种编号只适用于新加行时,但一旦你在原来的行里进行日期修改时就会有错误。如下图

 新加行时,选择日期,生成的单号是没有问题的。


此主题相关图片如下:1.png
按此在新窗口浏览图片

在原来日期上面,重新选择另外一个日期时,生成的单号是有问题的。(实际应该为20120302-001)

此主题相关图片如下:2.png
按此在新窗口浏览图片

不知,各位有没有好的更改的方法?

[此贴子已经被作者于2012-3-17 3:21:32编辑过]

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


加好友 发短信
等级:婴狐 帖子:74 积分:683 威望:0 精华:0 注册:2011/10/24 19:38:00
  发帖心情 Post By:2012/3/17 10:13:00 [只看该作者]

Dim BHTEMP As String

BHTEMP=format(e.Form.Controls("DateTimePicker2").Value,"yyyyMMdd")
Dim max As String
Dim idx As Integer

max = Tables("bmk").Compute("Max(BH)","substring([BH],5,8) = " & bhtemp & "" )

If max>"" Then
idx = CInt(max.Substring(12)) + 1

Else
idx = 1

End If


e.form.Controls("LabelBH1").text ="HHZY" & BHTEMP & Format(idx,"00000")

 

 

 

我刚好完成了这个,你参考一下我的代码咯,我生成的编号结构是这样的前缀“HHZY”,中间段就是日期比如”20120317“,后段为变动值五位“00001”

如果是同一日期的,后段变动自增,如果不是同一日期的那么后段默认从00001开始,放在TEXTCHANGED事件里,当日期变化,则重新计算编号

[此贴子已经被作者于2012-3-17 10:39:24编辑过]

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


加好友 发短信
等级:婴狐 帖子:74 积分:683 威望:0 精华:0 注册:2011/10/24 19:38:00
  发帖心情 Post By:2012/3/17 10:14:00 [只看该作者]

看狐表帮助两个月了,呵呵!也能帮忙回答一个问题了

 回到顶部