FlexiCapture распознает штрих-код EAN-13 и сама проверяет его корректность. Но иногда бывают ситуации, когда штрих-код испорчен, но под ним есть читабельная строка цифр (значение штрих-кода). Можно попытаться распознать ее. Но при этом необходимо проверить корректность распознавания "псевдо штрих-кода", проверив его контрольную сумму.
Dim vFieldValue
vFieldValue = me.Field ("Barcode").Text
if Len (vFieldValue)<> 13 then
me.ErrorMessage = "Некорректный формат штрих-кода. Текущая длина строки " & CStr (Len (vFieldValue))
me.CheckSucceeded = False
else
if not IsNumeric (vFieldValue) then
me.ErrorMessage = "Некорректный формат штрих-кода"
me.CheckSucceeded = False
else
Dim CheckSum, i
Dim PLU()
Redim PLU(13)
for i = 1 to 13
PLU(i)= Mid (vFieldValue, i,1)
next
CheckSum = 0
' шаг 1
for i = 2 to 12 step 2
CheckSum = CheckSum + PLU(i)
next
' шаг 2
CheckSum = CheckSum * 3
' шаг 3,4
for i = 1 to 11 step 2
CheckSum = CheckSum + PLU(i)
next
' шаг 5
CheckSum = 10 - CheckSum Mod 10
if CheckSum = 10 then
CheckSum = 0
end if
if CStr (PLU(13)) <> CStr (CheckSum) then
me.ErrorMessage = "Некорректный формат штрих-кода. Проверьте распознавание."
me.CheckSucceeded = False
end if
end if
end if
コメント
1件のコメント
サインインしてコメントを残してください。