dimecres, 19 de juny del 2013

Càlcul del dígit de control en el codi SSCC

Recentment m’he trobat amb la necessitat de generar el dígit de control del codi SSCC per unes etiquetes EAN128. He trobat informació al respecte en aquesta web:

http://gs1ec.org/contenido/index.php?option=com_content&view=article&id=5&Itemid=42

La informació de fet és aquesta:

image

A continuació us poso la funció que he fe per tal de controlar aquest dígit de control:

Private Function Verifica_DC_SSCC(ByRef Valor_SSCC As String) As Boolean
Dim i As Byte
Dim TotalBase As Long
Dim Total10 As Long
Dim DC As Byte

    'de moment suposarem que em ve alguna cosa com ara (00)XXXXXXXXXXXXXXXXXC 
    Valor_SSCC = Right$(Valor_SSCC, 18)
   
    If Len(Valor_SSCC) <> 18 Then
        MsgBox "El SSCC ha de ser de 18 dígits.", vbInformation
    End If

    TotalBase = 0
   
    For i = 1 To 17
        TotalBase = TotalBase + Mid(Valor_SSCC, i, 1) * IIf(i Mod 2 = 0, 1, 3)
    Next i
   
    Total10 = TotalBase
   
    While Total10 Mod 10 <> 0
        Total10 = Total10 + 1
    Wend
   
    DC = Total10 - TotalBase

    If DC <> Right(Valor_SSCC, 1) Then
        MsgBox "Dígit de control incorrecte, hauria de ser un: " & DC
        Verifica_DC_SSCC = False
    Else
        Verifica_DC_SSCC = True
    End If
   
End Function

Cap comentari:

Publica un comentari a l'entrada