以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  新手请教个遍历相关问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=190074)

--  作者:18063580002
--  发布时间:2024/1/15 10:28:00
--  新手请教个遍历相关问题


此主题相关图片如下:66666666666666666666666666666666666666.jpg
按此在新窗口浏览图片



包装 里面的 6 代表第6袋,

例如 :这个第6袋 里面应该有10个单号,

     分别是 2023001

2023002

2023003

2023004

2023005

2023006

2023007

2023008

2023009

2023010

请问用什么办法找缺少的单号?

[此贴子已经被作者于2024/1/15 10:40:52编辑过]

--  作者:18063580002
--  发布时间:2024/1/15 10:35:00
--  
请问怎么发不了图片呢?
--  作者:有点蓝
--  发布时间:2024/1/15 10:41:00
--  
上传方法:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=78

重复上传直到编辑器有上传后的链接

--  作者:18063580002
--  发布时间:2024/1/15 10:43:00
--  


此主题相关图片如下:66666666666666666666666666666666666666.jpg
按此在新窗口浏览图片



包装 里面的 代表第6袋,

例如 :这个第6袋 里面应该有10个单号,

     分别是 2023001

2023002

2023003

2023004

2023005

2023006

2023007

2023008

2023009

2023010

请问用什么思路查找 第6袋 缺少的单号?

[此贴子已经被作者于2024/1/15 10:43:26编辑过]

--  作者:有点蓝
--  发布时间:2024/1/15 11:17:00
--  
怎么知道某一个袋里的第一个单号是什么?比如第6袋的第一个单号是2023001,那么第2袋的第一个单号又是什么,第3袋呢?
--  作者:18063580002
--  发布时间:2024/1/15 11:55:00
--  
我们是这样的, 
单号定为7位,每一袋50个单号,袋子号的规则是取单号的后两位, 生成袋子号的时候取用单号前几位不变。

例如:
2023001 至 2023050 是一袋,2023051至2023100是一袋
判断一下单号的后两位
如果,后两位是01  至  50  的话,那么袋号就生成2023001
如果,后两位是51  至  99  的话,那么袋号就生产2023002
如果,后两位是00 (2023100),单号的左3位减1  生产单号  那么袋号就生产2023002                    

2023516 袋子号就是  2023501
2023600 袋子号就是  2023502


我们输入单号的时候,有可能单号有几个没有录入,没有录入的话,怎么把这一袋缺少的单号找出来

--  作者:有点蓝
--  发布时间:2024/1/15 13:44:00
--  
Dim a As Integer = 1
Dim lst As New list(Of String) 
Dim ps As list(Of String) = DataTables("订单").getvalues("单号", "包装=6 and 单号 is not null")
Dim s As String
If ps.count > 0 AndAlso ps.count < 50 Then
    s = ps(0)
    Dim x As Integer = CInt(s.substring(s.length - 2))
    If x > 50 OrElse x <= 0 Then
        a = 51
    End If
    Dim p As String = s.substring(0, 4)
    Dim k As Integer = CInt(s.substring(4, 1) & format(a, "00"))
    For i As Integer = k To k + 49
        s = p & format(i, "000")
        If ps.contains(s) = False Then lst.add(s)
    Next
End If

Output.Show("缺失单号")
For Each s1 As String In lst
    Output.Show(s1)
Next

--  作者:18063580002
--  发布时间:2024/1/16 1:26:00
--  
谢谢老师。