以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]实例不对啊?~!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=19586)

--  作者:yangrou
--  发布时间:2012/5/15 11:57:00
--  [求助]实例不对啊?~!

自动编号生成方法

一、按月生成编号


按照上面的例子,做了一次,结果在输入日期后,编号是空的,但删除日期后,编号却出来了。求解?~!


--  作者:狐狸爸爸
--  发布时间:2012/5/15 12:00:00
--  

嘿嘿,帮助的例子绝对正确!

如果你认为不正确,就做一个不正确的例子来证明他。


--  作者:yangrou
--  发布时间:2012/5/15 12:02:00
--  

If e.DataCol.Name = "日期" Then
    If
e.DataRow.IsNull("日期") Then
        e.
DataRow("编号") = Nothing
    Else
        Dim
d As Date = e.DataRow("日期")
        Dim
y As Integer = d.Year
        Dim
m As Integer = d.Month
        Dim
Days As Integer = Date.DaysInMonth(y,m)
        Dim
fd As Date = New Date(y,m,1) \'获得该月的第一天
       
Dim ld As Date = New Date(y,m,Days) \'获得该月的最后一天
       
Dim bh As String = Format(d,"yyyyMM") \'生成编号的前6位,4位年,2位月.
       
If e.DataRow("编号").StartsWith(bh) = False \'如果编号的前6位不符
           
Dim max As String
           
Dim idx As Integer
            max = e.
DataTable.Compute("Max(编号)","日期 >= #" & fd & "# And 日期 <= #" & ld & "#") \'取得该月的最大编号
           
If max > "" Then \'如果存在最大编号
                idx = CInt(max.Substring(
7,3)) + 1 \'获得最大编号的后三位顺序号,并加1
           
Else
                idx =
1 \'否则顺序号等于1
           
End If
            e.
DataRow("编号") = bh & "-" & Format(idx,"000")
        End
If
    End
If
End
If




我是直接复制帮助的。


--  作者:狐狸爸爸
--  发布时间:2012/5/15 12:06:00
--  

我也只是复制帮助的代码,有效:

 

 

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


--  作者:yangrou
--  发布时间:2012/5/15 12:08:00
--  
你看我的~!
--  作者:yangrou
--  发布时间:2012/5/15 12:12:00
--  
刚没添加上
--  作者:狐狸爸爸
--  发布时间:2012/5/15 12:15:00
--  
你的在哪里?
--  作者:yangrou
--  发布时间:2012/5/15 12:18:00
--  
我错了,嘿嘿,事件项目选错了
老板,委屈你了
哈哈

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