以文本方式查看主题

-  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=80285)

--  作者:jncoser
--  发布时间:2016/1/19 23:33:00
--  [求助]请教老师自动编号

请教各位老师,关于窗口下

 

批号一(20150119P001)包含行:  第一行(自动行编号:20150119001)第二行(自动行编号:20150119002) 第三行(自动行编号:20150119003)

批号二(20150119P002)包含行:  第四行(自动行编号:20150119004)第五行(自动行编号:20150119005) 第六行(自动行编号:20150119006)

批号三(20150119P003)包含行:  第七行(自动行编号:20150119007)第八行(自动行编号:20150119008) 第九行(自动行编号:20150119009)

 

根据帮助学习,做了自动行的自动编号。

 

现在想实现 在窗口下,按一个按钮新增一行,同批号的行(例如新增一行 编号:20150119010 ,批号是20150119P003)。按另一个按钮新增一行,但,新增的批号变按日期开头递增(例如新增一行 编 号:20150119011,但批号为20150119P004)。

 

想了许久,没想出办法。求助。求老师给个方向,方法。


--  作者:Hyphen
--  发布时间:2016/1/20 8:51:00
--  
参考 :http://www.foxtable.com/help/topics/2403.htm

代码放到按钮事件中,改改,类似:
Dim dr As DataRow = DataTables("订单").AddNew()

Dim max As String
Dim idx As Integer
max = DataTables("订单").Compute("Max(编号)"," [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号
If max > "" Then \'如果存在最大编号
    idx = CInt(max.Substring(2,3)) + 1 \'获得最大编号的后三位顺序号,并加1
Else
    idx = 1 \'否则顺序号等于1
End If
dr("编号") = Format(Date.Today,"yyyyMMdd") & Format(idx,"000")


--  作者:jncoser
--  发布时间:2016/1/23 11:02:00
--  
谢谢指教,搞定了。您列的代码我明白理解 ,我不会灵活运用。谢谢。