コミュニティ

Проверка контрольной суммы для штрих-кода EAN-13

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

この記事は役に立ちましたか?

0人中0人がこの記事が役に立ったと言っています

コメント

1件のコメント

  • Avatar
    Permanently deleted user
    Есть для code-128?
    0

サインインしてコメントを残してください。