以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于编号----(已解决)  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=11195)

--  作者:qhczy
--  发布时间:2011/7/12 19:40:00
--  关于编号----(已解决)

根据示例流水账和狐友提供的编号示例做了一个自动编号示例,仍有所欠缺。发上示例,希望高手能按要求更改一下。

示例中所做的是按日来自动编号,希望能做成按月来做自动编号。也就是说希望7月份7.1-7.31编号按年+月+0001为顺序编。8.1开始,编号恢复到年+月+0001再顺序往下编.

如果某一编号被录入后再删除,那该编号将不能再次被编入.

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:编号测试.rar

[此贴子已经被作者于2011-7-13 14:40:55编辑过]

--  作者:mr725
--  发布时间:2011/7/12 22:52:00
--  


If e.DataCol.Name = "日期" Then
    If e.DataRow.IsNull("日期") = False And e.DataRow("编号") = Nothing Then
        Dim s As String =  format(e.DataRow("日期"),"yyyyMM") &"-"
        e.DataRow("编号")=s
        Dim i As String = e.DataTable.Compute("Max(编号)" , "[编号] like \'" & s & "*\'" )
        Dim n As Integer
        If i.length > 7 Then
            n=CInt(right(i,4))
            s= s & format(n+1,"0000")
            e.DataRow("编号")=s

        Else
            n=0
            s= s & format(n+1,"0000")
            e.DataRow("编号")=s

        End If        
    ElseIf e.DataRow.IsNull("日期")
        e.DataRow("编号") = Nothing
    End If
End If


--  作者:qhczy
--  发布时间:2011/7/13 12:39:00
--  

如何让编号随日期变化而变化呢?
假如当前表中信息为:

日期:2011-01-01     编号:201101-0001

日期:2011-01-02     编号:201101-0002

日期:2011-01-05     编号:201101-0003

日期:2011-01-15     编号:201101-0004

 

日期:2011-02-01     编号:201102-0001

日期:2011-02-02     编号:201102-0002

日期:2011-02-05     编号:201102-0003

日期:2011-01-05     编号:201101-0004

 

 

希望修改日期后,编号随日期而变化.

 

日期:2011-01-11     编号:201101-0003

日期:2011-01-02     编号:201101-0001

日期:2011-01-05     编号:201101-0002

日期:2011-01-15     编号:201101-0004

 

日期:2011-03-01     编号:201103-0001

日期:2011-02-02     编号:201102-0001

日期:2011-02-25     编号:201102-0003

日期:2011-02-05     编号:201102-0002

 

如何实现呢?

 

 

[此贴子已经被作者于2011-7-13 12:40:23编辑过]

--  作者:mr725
--  发布时间:2011/7/13 12:56:00
--  

这简单呀,用select 选定同月的记录(可能要用到 _identify 列 ),再for ..... next 重新编号即可。

 

不过,你1楼最后一句话:“如果某一编号被录入后再删除,那该编号将不能再次被编入” 就不好处理了。


--  作者:qhczy
--  发布时间:2011/7/13 13:40:00
--  

代码已解决,谢谢!

[此贴子已经被作者于2011-7-13 14:40:31编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/7/13 14:40:00
--  

这个符合你的要求,而且中间被删除的不会被重用:

 

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