以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  订单编号重复  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=193913)

--  作者:denghui69986
--  发布时间:2024/10/25 8:21:00
--  订单编号重复
订单编号列按日期生成订单编号每天早上第一次打开录入订单就会有每个月第一个编号重复,老师帮忙看看什么原因导致每天早上打开录入第一个就会重复
图片点击可在新窗口打开查看此主题相关图片如下:截图订单编号.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2024/10/25 8:39:00
--  
请上传实例测试
--  作者:denghui69986
--  发布时间:2024/10/25 13:59:00
--  
当天不重复编号,换日期就重复编号
图片点击可在新窗口打开查看此主题相关图片如下:换日期重复编号.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip


--  作者:有点蓝
--  发布时间:2024/10/25 14:29:00
--  
设置的查询条件里的日期条件不正确。如果是按月生成编号,参考:http://www.foxtable.com/webhelp/topics/2403.htm,看一、按月生成编号是如何设置日期查询条件的
--  作者:denghui69986
--  发布时间:2024/10/25 16:26:00
--  
没看明白,老师指点一下那里不对,谢谢
--  作者:有点蓝
--  发布时间:2024/10/25 16:58:00
--  
        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 & "# And [_Identify] <> " & e.DataRow("_Identify")) \'取得该月的最大编号