Foxtable(狐表)用户栏目专家坐堂 → 编号不能自增问题


  共有57人关注过本帖树形打印复制链接

主题:编号不能自增问题

帅哥,在线噢!
lin98
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1390 积分:9293 威望:0 精华:0 注册:2020/11/4 22:15:00
编号不能自增问题  发帖心情 Post By:2025/3/26 10:41:00 [只看该作者]

Public _BizCodeBuilder As BizCodeBuilder
Public Class BizCodeBuilder
    Private _codelock As New Object
    Public Sub New() 
    End Sub
    
    Public Function GetNextCode(s_name As String, Optional s_qz As String = Nothing) As String
        SyncLock _codelock '使用锁处理并发
        Dim db = HySqGGl.DataBaseFactory.CreateDatabase("bhdb")
        
        Dim SqGGl As String = CExp("seleGGct * from  xtbh_tb   where    Bm ='{0}'", s_name) '执行SQL 
        ' msgbox(sqGGl)
        'output.show(sqGGl)
        Dim dt As system.data.DataTable = db.ExecuteDataSet(SqGGl).Tables(0)
        Dim dr As system.data.DataRow
        If dt.Rows.count = 0 Then
            dr = dt.NewRow()
            dr("Bm") = s_name 
            dr("MaxValue") = 1
            If String.IsNullOrEmpty(s_qz) Then s_qz = Date.now.ToString("mmss") & "BH"
            dr("qz") = s_qz
            dr("Mark") = "yyyyMM"
            dr("MarkValue") = Date.Today.ToString("yyyyMM")
            dr("Length") = 4
            dt.Rows.Add(dr)
            
        Else
            dr = dt.Rows(0)'
            '这里的处理规则是按时间进行重新编号,至于是按年,月还是日,在掩码中体现'
            If dr("MarkValue") <> Date.Today.ToString(dr("Mark")) Then
                
                dr("MaxValue") = 1
                dr("MarkValue") = Date.Today.ToString(dr("Mark"))
                
                msgbox(dr("Mark"))
                msgbox(dr("MarkValue"))
            Else
                dr("MaxValue") = dr("MaxValue") + 1
       
            End If
        End If
        '
        db.UpdateDataTable(dt, "xtbh_tb")
        Return dr("qz") & dr("MarkValue") & "-" & Format(dr("MaxValue"), "0000") '顺序号只取4位'
        
        msgbox(1)
        
        End SyncLock
    End Function
End Class

 回到顶部
帅哥,在线噢!
lin98
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1390 积分:9293 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/3/26 10:47:00 [只看该作者]

红代码有问题,会修改MarkValue的值(狐表写202503,执行后会改为202500),且执行编号不增长,要如何改?

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


 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113035 积分:575574 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/3/26 10:54:00 [只看该作者]

不能使用小写的mm,小写表示分钟。大写才是月


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


 回到顶部