8
0
2024-11-08 15:39:19 +01:00

77 lines
2.0 KiB
Plaintext

' Version Date: 05.01.2021
Function SerialNumberMatches(ArticleNumber, SerialNumber)
HasError = False
SQL = ""
SQL = SQL & "(C002 = '" & ArticleNumber & "')"
' Nach Mandant und Wirtschaftsjahr filtern
SQL = SQL & SQLQuery_BasicWhere
Set ResultMainArticle = CWLStart.CurrentCompany.SearchRecord(TABLE_21, SQL)
If ResultMainArticle.RowCount > 0 Then
SerialNumberPattern = ResultMainArticle.Value("C222")
End If
If DEBUG_ON = True Then
AddDebugLine "Preparing Regex Check. " & vbNewline
AddDebugLine "SerialNumber: " & SerialNumber
AddDebugLine "SerialNumberPattern: " & SerialNumberPattern
AddDebugLine "ArticleNumber: " & ArticleNumber
ShowDebugBox "SerialNumberMatches"
End If
If Len(SerialNumberPattern) > 0 And Len(SerialNumber) > 0 Then
Set SerialNumberRegex = New Regexp
SerialNumberRegex.Pattern = SerialNumberPattern
SerialNumberRegex.IgnoreCase = False
SerialNumberRegex.Global = False
Set RegexMatch = SerialNumberRegex.Execute(SerialNumber)
If RegexMatch.Count > 0 Then
Set FirstMatch = RegexMatch.Item(0)
If DEBUG_ON = True Then
AddDebugLine "Checked Serialnumber against Regex. (1/2)" & vbNewline
AddDebugLine "FirstMatch.Length: " & FirstMatch.Length
AddDebugLine "Len(SerialNumber): " & Len(SerialNumber)
AddDebugLine "FirstMatch.FirstIndex: " & FirstMatch.FirstIndex
ShowDebugBox "SerialNumberMatches"
End If
If FirstMatch.Length = Len(SerialNumber) And FirstMatch.FirstIndex = 0 Then
HasError = False
Else
HasError = True
End If
If DEBUG_ON = True Then
AddDebugLine "Checked Serialnumber against Regex. (2/2)" & vbNewline
AddDebugLine "Result: " & SerialNumberRegex.Test(SerialNumber)
AddDebugLine "Serialnumber: " & SerialNumber
AddDebugLine "Regex: " & SerialNumberPattern
ShowDebugBox "SerialNumberMatches"
End If
Else
HasError = True
End If
Else
HasError = True
End If
If HasError = True Then
SerialNumberMatches = False
Else
SerialNumberMatches = True
End If
End Function