以文本方式查看主题

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

--  作者:douglas738888
--  发布时间:2016/1/22 10:31:00
--  跨年自动编号问题
老师,我写的代码第一行手工输入001后能实现自动编号了,该编号要用到其他地方形成其他编号,现在有个问题

如何设置条件,例如到2017年1月1日开始,该编号又从001开始自动编号

Dim drs As List(Of DataRow)
drs = DataTables("档案管理").Select("","档案号 Desc")
e.DataRow("档案号") = drs(0)("档案号").substring(0,2) & drs(0)("档案号").substring(2)+1

--  作者:大红袍
--  发布时间:2016/1/22 10:33:00
--  

参考

 

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

 


--  作者:大红袍
--  发布时间:2016/1/22 10:33:00
--  
 如果你编号没有年的信息,那不是重复了?
--  作者:douglas738888
--  发布时间:2016/1/22 10:38:00
--  
001只是文件顺序号,要用到其他地方和日期、类别、新孙序号形成不从复的识别号,每年的文件顺序号需要从001第一级开始

关于自动编号的帮助我看了,帮助中的例子我会做的,就是跨年的怎么做不知道
[此贴子已经被作者于2016/1/22 10:39:36编辑过]

--  作者:大红袍
--  发布时间:2016/1/22 10:43:00
--  

跨年就是2楼那样做啊。根据日期列判断最大最小就行啊

 

Dim d As Date = e.DataRow("日期")

d = new date(d.year, 1, 1)

Dim drs As List(Of DataRow)
drs = DataTables("档案管理").Select("日期 >= #" & d & "# and 日期 < #" & d.addYears(1) & "#","档案号 Desc")
e.DataRow("档案号") = drs(0)("档案号").substring(0,2) & drs(0)("档案号").substring(2)+1

--  作者:douglas738888
--  发布时间:2016/1/22 11:01:00
--  
老师,您指导的代码 出现调用目标发生异常,也不进行编号,
--  作者:大红袍
--  发布时间:2016/1/22 11:07:00
--  
代码没问题。不会做就上传实例。
--  作者:douglas738888
--  发布时间:2016/1/22 11:23:00
--  
请老师看看,我只想实现的是自动编顺序号001开始,跨年重新001开始,我的问题在哪里,谢谢!  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试11.zip



--  作者:大红袍
--  发布时间:2016/1/22 11:34:00
--  

e.DataRow("日期") = Date.now

Dim d As Date = e.DataRow("日期")
d = new Date(d.year, 1, 1)
Dim i As Integer = DataTables("表A").compute("max(档案号)", "日期 >= #" & d & "# and 日期 < #" & d.addYears(1) & "#")
e.DataRow("档案号") = format(i + 1, "000")