以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  隔月回收编号不能用如何实现?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=196296)

--  作者:lin98
--  发布时间:2025/4/16 14:11:00
--  隔月回收编号不能用如何实现?

3、:

Dim msg As String = e.Message
If
 msg.StartsWith(":p"AndAlso msg.EndsWith("p:"Then
    msg = msg.SubString(2, msg.Length - 4)
    If flbhs.ContainsKey(msg) Then 
\'
如果存在这个月的编号
        flbhs(msg) = flbhs(msg) + 1 
\'
将该月最大编号1
    
Else
        flbhs.Add(msg,1\'如果是这个月的首次编号,则编号等于1
    End If
    e.ReturnValue = flbhs(msg) 
\'将编号返回给客户端

End
 If

客户端的设计

选择客户端项目的订单表,

If e.DataCol.Name = "日期" Then
    If e.DataRow.IsNull(
"
日期"Then
        e.DataRow(
"
编号") = Nothing
    Else
        If QQClient.Ready = False Then
            PopMessage(
"QQClient
未启动,无法生成编号!","提示",PopIconEnum.Infomation,5)
        Else
            Dim bh As String = Format(e.DataRow(
"
日期"),"yyyyMM")
            Dim rt As String =  QQClient.SendWait(":p" & bh & "p:")
            Dim id As Integer
            If rt > "" Then
                If  Integer.TryParse(rt,id)  Then
                    e.DataRow(
"
编号") = bh & "-" & Format(id,"000")
                Else
                    PopMessage(
"
服务器返回错误信息:" & rt,"提示",PopIconEnum.Infomation,5)
                End If
            Else
                PopMessage(
"
服务器无响应,无法生成编号!","提示",PopIconEnum.Infomation,5)
            End If
        End If
    End 
If

End
 If


回收编号利用,如何处理隔月多余的编号,比如现在是2025年4月,在回收编号表中有2025年3月的编号,如何去不用,比如现应是DD-202504-001,如果回收表有DD-202503-029,如何实现?



--  作者:有点蓝
--  发布时间:2025/4/16 14:29:00
--  
查回收表的时候加上条件,比如:

dim f as string = "原来其它条件 and 编号 like \'*-202504-*\'"

--  作者:lin98
--  发布时间:2025/4/17 9:45:00
--  
在回收表增加一列日期,日期是记录每次回收日期,
现在需求:后台数据库在跨月自动检查回收表是否有上月的记录,如果有自动从后台清空,仅保存当前的记录,如何实现?

比如:回收表中有如下数据:
订单表    2025-03-29     DD-202503-005,这是上月,当前月后台自动检测后自动清除。
订单表    2025-04-02     DD-202504-005,这是本月,保留再利用

--  作者:有点蓝
--  发布时间:2025/4/17 9:55:00
--  
dim d as date = cdate("2025-04-02").addmonths(-1)
dim s as string = "DD-" & format(d,"yyyyMM")
datatables("回收表").sqldeletefor("编号 like \'" & s & "%\'")

--  作者:lin98
--  发布时间:2025/4/17 14:29:00
--  
dim d as date = cdate("2025-04-02").addmonths(-1)
dim s as string = "DD-" & format(d,"yyyyMM")
datatables("回收表").sqldeletefor("编号 like \'" & s & "%\'")
问题一:这代码要放在哪里?
问题二;这代码对回收多表的编号,当前只有表1,后面有表2表3表4表5、、、、"DD-,"DW,  DF-/////,就不适用,
如何实现用回收表的日期与不本月的记录删除?


--  作者:有点蓝
--  发布时间:2025/4/17 14:44:00
--  
1、放到AfterOpenProject,或者做个计划管理,每月1号处理

2、去掉前缀