Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]自动编码,服务器端程序重启后,未生成字典,造成编码从1开始编

1楼
dahai 发表于:2024/11/5 23:17:00
老师,您好:

问题:服务器端程序重启后,afteropenproject  根据datatable生成的字典里面没有数据,造成编码从1开始编。请老师帮助看一下,谢谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目.zip



afteropenproject:

 

Forms("QQServer").Open()



Dim dt As DataTable

Dim cmd As New SQLCommand

cmd.CommandText = "Se-lect 工程代码,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("年") & Format(dr("月"), "00") '编号前缀,4位工程代码,4位年,2位月

    Dim bh As String = dr("单据编号")

    Dim id As Integer

    If bh.Length = 14 Then

        bh = bh.SubString(10)

        If Integer.TryParse(bh, id) Then

            flbhs.Add(qz, id)

        End If

    End If

Next


receivemessage:


If e.Message = "GetDate" Then

    e.ReturnValue = Date.Now

End If



Dim msg As String = e.Message

If msg.StartsWith(":g") AndAlso msg.EndsWith("g:") Then

    msg = msg.SubString(2, msg.Length - 4)

    'Output.Show(msg)

    If flbhs.ContainsKey(msg) Then '如果存在这个月的编号

        flbhs(msg) = flbhs(msg) + 1 '将该月最大编号加1

    Else

        flbhs.Add(msg, 1) '如果这个月的首次编号,则编号等于1

    End If

    e.ReturnValue = flbhs(msg)

    Dim dr As DataRow = DataTables("编码表").AddNew()

    dr("工程代码") = msg.Substring(0, 2)

    dr("制单日期") = Date.Today

    dr("单据编号") = msg & Format(flbhs(msg), "0000")

    DataTables("编码表").Save()

End If




2楼
有点蓝 发表于:2024/11/6 8:29:00
编号只有12位,代码里判断的是14位,当然不行

    If bh.Length = 14 Then
        bh = bh.SubString(10)
改为
    If bh.Length = 12 Then
        bh = bh.SubString(8)

如果编号可能不等长,就去掉这个判断
3楼
dahai 发表于:2024/11/6 9:52:00
谢谢老师,可以了 !
共3 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 3 queries.