以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于编号问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177853) |
-- 作者:lgz518 -- 发布时间:2022/6/7 14:17:00 -- 关于编号问题 三、按日期和类别编号 假定有个表,需要按月自动生成编号,根据工程代码按顺序编号,前4位是工程代码,然后是4位年,2位月,最后4位是顺序号,如下图所示: 其实如果你看懂了前面的例子,这个例子就是多余的,无非就是在服务器端记录每一个前缀的最大序号,遇到客户端申请编号的时候,将最大序号加1,然后返回给客户端。 接下来我们看看是不是和第一个例子一样。 服务端的设计 1、在服务端的全局代码中编写代码: Public flbhs As new Dictionary(of String,Integer) 2、在服务端的AfterOpenProjet事件中编写代码: Dim dt As DataTable 用OpenQQ实现网络环境下的编号 用上面代码进行编号,服务端红字代码有以下问题: 1,红字代码是一个表编号,如果只能是一个独立业务表的编号,那样有100张表就要重复100次红字代码,这样代码量会非常大? 2,还是做为一个公共表编号“工程”来编号,给所有业务表的编号使用,如果是这样代码量相对少一些? |
-- 作者:有点蓝 -- 发布时间:2022/6/7 14:29:00 -- 学会变通一下,加一个表名列 cmd.CommandText = "Se1ect 表名,工程代码,Year(制单日期) As 年, Month(制单日期) As 月, Max(单据编号) as 单据编号 From {工程} Group By 表名,工程代码,Year(制单日期), Month(制单日期)" dt = cmd.ExecuteReader
flbhs.Clear() For Each dr As DataRow In dt.DataRows Dim qz As String = dr("表名") & "-" dr("工程代码") & "-" & dr("年") & Format(dr("月"),"00") \'编号前缀,4位工程代码,4位年,2位月 |