以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]求根据自动编号  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56556)

--  作者:荟美绘姿
--  发布时间:2014/9/8 23:28:00
--  [求助]求根据自动编号
分别有两列:编号_年份和编号_序列号
编号_年份是自动获取的系统日期中的年,如2014、2015、...
我想让编号_序列号自动生成,如:当编号_年份中为2014时编号_序列号就从00001开始,当编号_年份中为2015时编号_序列号就自动回到从00001开始,当编号_年份中为2016时编号_序列号就自动回到从00001开始,依次类推下去...

请大侠指教,这个代码该如何写?

图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

--  作者:程兴刚
--  发布时间:2014/9/8 23:54:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=26913&replyID=&skin=1
--  作者:狐狸爸爸
--  发布时间:2014/9/9 10:00:00
--  

很简单:

http://www.foxtable.com/help/topics/2403.htm

 

看懂了,就能随心所欲,你的更简单:

 

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.table


--  作者:荟美绘姿
--  发布时间:2014/9/9 15:27:00
--  
我上传项目,请大侠帮我看一下下,密码:888
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:data.zip

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:违法行为处理.zip




--  作者:有点甜
--  发布时间:2014/9/9 15:41:00
--  

If e.DataRow("单位基本情况_单位名称")<>"" Then
    e.DataRow("编号_年份")=Format(Date.Today, "yyyy")
End If

If e.DataCol.Name = "编号_年份" Then
    If e.DataRow.IsNull("编号_年份") Then
        e.DataRow("编号_序列号") = Nothing
    Else
        Dim max As String
        Dim idx As Integer
        max = e.DataTable.Compute("Max(编号_序列号)","编号_年份 = \'" & e.DataRow("编号_年份") & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该年的最大序列号
        If max > "" Then \'如果存在最大序列号
            idx = CInt(max) + 1 \'获得最大序列号的后三位顺序号,并加1
        Else
            idx = 1 \'否则顺序号等于1
        End If
        e.DataRow("编号_序列号") = Format(idx,"00000")
    End If
End If