问题描述
我想用label_id打印标签
标签ID格式包含运行编号0001(0001,0002,..) - 我想在新的一天到来时将运行编号重置为0001 。
有人可以给我一些关于我的问题的想法或解决方案吗?
目前,如果新的一天到来,我的系统会重置运行号码但是问题是运行次数一次又一次地重复00001
我尝试了什么:
i want to print label with label_id
label id format contain running number which is 0001 (0001,0002,..) -i want to reset the running number to 0001 when the new day come.
can someone give me some ideas or solution regarding my problem?
currently, my system reset the running number if new day come but the problem is the running number keep repeating 00001 again and again
What I have tried:
Public Function get_ExistingSequenceNoOld(ByVal PN As String, ByVal q As String, ByVal vID As String)
On Error GoTo ErrorHandler
Dim dateL As Date
Dim date1 As String
Dim lastRecord As String
Dim lastDate As String
dateL = cls_PICS.get_SERVER_Datetime
date1 = dateL.ToString("yyyy-MM-dd")
PrinterDateTime DESC"
Dim SQL_str As String =
"SELECT * " &
"FROM setup ORDER BY PrinterDateTime DESC"
'"SELECT * " &
'"FROM setup where PartNo='" & PN & "' AND MOQ='" & q & "' AND VendorID='" & vID & "' AND Status <> 'INACTIVE' ORDER BY PrinterDateTime DESC"
Dim adLWS As New OdbcDataAdapter(SQL_str, cnPICS)
Dim dsLWS As New DataSet
adLWS.Fill(dsLWS, "BOXID")
LWS_CONT = dsLWS.Tables("BOXID").Rows.Count
' lastRecord = dsLWS.Tables("BOXID").Rows.Count - 1
'lastDate = dsLWS.Tables("BOXID").Rows.Item(lastRecord).Item("LastDate")
If LWS_CONT < 1 Then
get_ExistingSequenceNoOld = False
'get_cstTBL_Insert(val)
Exit Function
End If
ReDim PartNo(LWS_CONT)
ReDim BoxEnd(LWS_CONT)
ReDim DateEnd(LWS_CONT)
ReDim PrintQty(LWS_CONT)
ReDim MOQ(LWS_CONT)
ReDim venID(LWS_CONT)
ReDim DeliveryQty(LWS_CONT)
ReDim qcInspection(LWS_CONT)
Dim i As Integer
For i = 0 To LWS_CONT - 1
PartNo(i) = dsLWS.Tables("BOXID").Rows(i)("PartNo").ToString
MOQ(i) = dsLWS.Tables("BOXID").Rows(i)("MOQ").ToString
BoxEnd(i) = dsLWS.Tables("BOXID").Rows(i)("EndBox").ToString
PrintQty(i) = dsLWS.Tables("BOXID").Rows(i)("PrintQty").ToString
venID(i) = dsLWS.Tables("BOXID").Rows(i)("VendorID").ToString
DeliveryQty(i) = dsLWS.Tables("BOXID").Rows(i)("DeliveryQty").ToString
qcInspection(i) = dsLWS.Tables("BOXID").Rows(i)("QC").ToString
BoxEnd(i) = dsLWS.Tables("BOXID").Rows(i)("EndBox").ToString
DateEnd(i) = dsLWS.Tables("BOXID").Rows(i)("LastDate").ToString
Next
If Today.Date > CDate(DateEnd(i)).Date Then
get_ExistingSequenceNoOld = False
Else
get_ExistingSequenceNoOld = True
End If
Exit Function
推荐答案
SELECT m.Ident, m.InsDat, m.OtherColumnList, m.Ident - s.MinSeq + 1 AS Seq FROM MyTable m
JOIN (SELECT Insdat, MIN(Ident) AS MinSeq FROM MyTable GROUP BY InsDat) s ON s.InsDat = m.InsDat
你得到的是一个整数列,每天从1开始 - 你可以将其格式化为a如果需要,可以使用zered字符串,或让你的表示层处理它。
What you get is an integer column which starts at 1 each day - you can format that to a leading zered string if you need to, or let your presentation layer handle that.
Ident InsDat Val Seq
1 2017-07-05 A 1
2 2017-07-05 A 2
3 2017-07-05 A 3
4 2017-07-05 A 4
5 2017-07-05 A 5
6 2017-07-06 B 1
7 2017-07-06 B 2
8 2017-07-06 B 3
9 2017-07-06 B 4
10 2017-07-06 B 5
11 2017-07-06 B 6
12 2017-07-07 C 1
13 2017-07-07 C 2
14 2017-07-07 C 3
15 2017-07-07 C 4
16 2017-07-08 D 1
这篇关于如何在新的一天到来时重置运行号码ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!