mirror of
https://github.com/KeymonSoft/Guna_Reparto_Imp.git
synced 2026-04-17 12:56:18 +00:00
710 lines
24 KiB
QBasic
710 lines
24 KiB
QBasic
B4A=true
|
|
Group=Default Group
|
|
ModulesStructureVersion=1
|
|
Type=Class
|
|
Version=12.2
|
|
@EndOfDesignText@
|
|
'version 1.02
|
|
Sub Class_Globals
|
|
Private xui As XUI
|
|
Public cvs As B4XCanvas
|
|
Private xview As B4XView
|
|
End Sub
|
|
|
|
Public Sub Initialize
|
|
Dim xview As B4XView = xui.CreatePanel(Null)
|
|
xview.SetLayoutAnimated(0, 0, 0, 1050dip, 300dip)
|
|
xview.Color = xui.Color_White
|
|
End Sub
|
|
|
|
|
|
#Region EAN13
|
|
|
|
Public Sub EAN13(codigo As String) As B4XBitmap
|
|
cvs.Initialize(xview)
|
|
cvs.ClearRect(cvs.TargetRect)
|
|
|
|
If codigo.Length=12 Then codigo = "0" & codigo
|
|
|
|
If codigo.Length=13 Then
|
|
|
|
Dim novoCodigo As String = preparaEAN13(codigo)
|
|
|
|
If novoCodigo<>"" Then
|
|
|
|
'Dim canvas As B4XCanvas
|
|
Dim alturaPainel As Int = xview.Height
|
|
Dim larguraPainel As Int = xview.Width
|
|
Dim larguraCodigo As Int = xview.Width - 100dip
|
|
|
|
'Calcula as dimensões dos elementos do código de barras'
|
|
Dim alturaNumero As Int = 40dip 'altura dos números abaixo do código'
|
|
Dim larguraBarra As Int = larguraCodigo / 95 'largura de cada barra'
|
|
Dim alturaBarra As Int = alturaPainel - alturaNumero'altura das barras'
|
|
|
|
'Desenha as barras e os números do código de barras'
|
|
Dim rect As B4XRect
|
|
rect.Initialize(0, 0, larguraPainel, alturaPainel)
|
|
|
|
cvs.DrawRect(rect, xui.Color_White, True, 0) 'fundo branco'
|
|
|
|
Dim larguraAtual As Int = 50dip
|
|
|
|
For i=0 To novoCodigo.Length-1
|
|
Dim cor As Int = xui.Color_Black
|
|
If novoCodigo.CharAt(i) = "0" Then cor = xui.Color_White
|
|
If novoCodigo.CharAt(i) = "2" Then
|
|
cvs.DrawLine(larguraAtual, 0, larguraAtual, alturaBarra, cor, larguraBarra)
|
|
Else
|
|
cvs.DrawLine(larguraAtual, 0, larguraAtual, alturaBarra - alturaNumero, cor, larguraBarra)
|
|
End If
|
|
|
|
larguraAtual = larguraAtual + larguraBarra
|
|
Next
|
|
|
|
'Desenha o número abaixo do código de barras'
|
|
Dim fonte As B4XFont = xui.CreateFontAwesome(63)
|
|
|
|
Dim sb As StringBuilder
|
|
sb.Initialize
|
|
|
|
For i=1 To codigo.Length
|
|
Dim codigoCaracter As String = codigo.CharAt(i-1)
|
|
sb.Append(codigoCaracter)
|
|
|
|
If i=1 Then
|
|
sb.Append(" ")
|
|
Else If i=7 Then
|
|
sb.Append(" ")
|
|
Else If i=13 Then
|
|
'nao adiciona nada
|
|
Else
|
|
sb.Append(" ")
|
|
End If
|
|
Next
|
|
|
|
cvs.DrawText(sb.ToString, 1dip, alturaBarra+10dip, fonte, xui.Color_Black, "LEFT")
|
|
|
|
End If
|
|
|
|
End If
|
|
cvs.Invalidate
|
|
Dim res As B4XBitmap = cvs.CreateBitmap
|
|
cvs.Release
|
|
Return res
|
|
End Sub
|
|
|
|
Private Sub preparaEAN13(codigo As String) As String
|
|
|
|
Dim primeiroDigito As String = codigo.SubString2(0,1)
|
|
Dim primeiroGrupo As String = codigo.SubString2(1,7)
|
|
Dim segundoGrupo As String = codigo.SubString2(7,13)
|
|
|
|
Dim sequenciaNovo As String = ""
|
|
Dim codigoNovo As String = "-" & primeiroGrupo & "=" & segundoGrupo & "-"
|
|
|
|
If primeiroDigito="0" Then sequenciaNovo="-LLLLLL=RRRRRR-"
|
|
If primeiroDigito="1" Then sequenciaNovo="-LLGLGG=RRRRRR-"
|
|
If primeiroDigito="2" Then sequenciaNovo="-LLGGLG=RRRRRR-"
|
|
If primeiroDigito="3" Then sequenciaNovo="-LLGGGL=RRRRRR-"
|
|
If primeiroDigito="4" Then sequenciaNovo="-LGLLGG=RRRRRR-"
|
|
If primeiroDigito="5" Then sequenciaNovo="-LGGLLG=RRRRRR-"
|
|
If primeiroDigito="6" Then sequenciaNovo="-LGGGLL=RRRRRR-"
|
|
If primeiroDigito="7" Then sequenciaNovo="-LGLGLG=RRRRRR-"
|
|
If primeiroDigito="8" Then sequenciaNovo="-LGLGGL=RRRRRR-"
|
|
If primeiroDigito="9" Then sequenciaNovo="-LGGLGL=RRRRRR-"
|
|
|
|
Dim sb As StringBuilder
|
|
sb.Initialize
|
|
|
|
For i=0 To codigoNovo.Length-1
|
|
Dim digitoGrupo As String = codigoNovo.CharAt(i)
|
|
Dim sequenciaGrupo As String = sequenciaNovo.CharAt(i)
|
|
|
|
If sequenciaGrupo="L" Then
|
|
If digitoGrupo="0" Then sb.Append("0001101")
|
|
If digitoGrupo="1" Then sb.Append("0011001")
|
|
If digitoGrupo="2" Then sb.Append("0010011")
|
|
If digitoGrupo="3" Then sb.Append("0111101")
|
|
If digitoGrupo="4" Then sb.Append("0100011")
|
|
If digitoGrupo="5" Then sb.Append("0110001")
|
|
If digitoGrupo="6" Then sb.Append("0101111")
|
|
If digitoGrupo="7" Then sb.Append("0111011")
|
|
If digitoGrupo="8" Then sb.Append("0110111")
|
|
If digitoGrupo="9" Then sb.Append("0001011")
|
|
else If sequenciaGrupo="G" Then
|
|
If digitoGrupo="0" Then sb.Append("0100111")
|
|
If digitoGrupo="1" Then sb.Append("0110011")
|
|
If digitoGrupo="2" Then sb.Append("0011011")
|
|
If digitoGrupo="3" Then sb.Append("0100001")
|
|
If digitoGrupo="4" Then sb.Append("0011101")
|
|
If digitoGrupo="5" Then sb.Append("0111001")
|
|
If digitoGrupo="6" Then sb.Append("0000101")
|
|
If digitoGrupo="7" Then sb.Append("0010001")
|
|
If digitoGrupo="8" Then sb.Append("0001001")
|
|
If digitoGrupo="9" Then sb.Append("0010111")
|
|
Else If sequenciaGrupo="R" Then
|
|
If digitoGrupo="0" Then sb.Append("1110010")
|
|
If digitoGrupo="1" Then sb.Append("1100110")
|
|
If digitoGrupo="2" Then sb.Append("1101100")
|
|
If digitoGrupo="3" Then sb.Append("1000010")
|
|
If digitoGrupo="4" Then sb.Append("1011100")
|
|
If digitoGrupo="5" Then sb.Append("1001110")
|
|
If digitoGrupo="6" Then sb.Append("1010000")
|
|
If digitoGrupo="7" Then sb.Append("1000100")
|
|
If digitoGrupo="8" Then sb.Append("1001000")
|
|
If digitoGrupo="9" Then sb.Append("1110100")
|
|
Else If sequenciaGrupo="-" Then
|
|
sb.Append("202")
|
|
Else If sequenciaGrupo="=" Then
|
|
sb.Append("02020")
|
|
End If
|
|
Next
|
|
|
|
Return sb.ToString
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
#Region UPCA
|
|
|
|
Public Sub UPCA(codigo As String) As B4XBitmap
|
|
cvs.Initialize(xview)
|
|
cvs.ClearRect(cvs.TargetRect)
|
|
|
|
If codigo.Length=11 Then codigo = "0" & codigo
|
|
|
|
If codigo.Length=12 Then
|
|
|
|
Dim novoCodigo As String = preparaUPCA(codigo)
|
|
|
|
If novoCodigo<>"" Then
|
|
|
|
'Dim canvas As B4XCanvas
|
|
Dim alturaPainel As Int = xview.Height
|
|
Dim larguraPainel As Int = xview.Width
|
|
Dim larguraCodigo As Int = xview.Width - 100dip
|
|
|
|
'Calcula as dimensões dos elementos do código de barras'
|
|
Dim alturaNumero As Int = 40dip 'altura dos números abaixo do código'
|
|
Dim larguraBarra As Int = larguraCodigo / 95 'largura de cada barra'
|
|
Dim alturaBarra As Int = alturaPainel - alturaNumero'altura das barras'
|
|
|
|
'Desenha as barras e os números do código de barras'
|
|
Dim rect As B4XRect
|
|
rect.Initialize(0, 0, larguraPainel, alturaPainel)
|
|
|
|
cvs.DrawRect(rect, xui.Color_White, True, 0) 'fundo branco'
|
|
|
|
Dim larguraAtual As Int = 50dip
|
|
|
|
For i=0 To novoCodigo.Length-1
|
|
Dim cor As Int = xui.Color_Black
|
|
If novoCodigo.CharAt(i) = "0" Then cor = xui.Color_White
|
|
If novoCodigo.CharAt(i) = "2" Then
|
|
cvs.DrawLine(larguraAtual, 0, larguraAtual, alturaBarra, cor, larguraBarra)
|
|
Else
|
|
cvs.DrawLine(larguraAtual, 0, larguraAtual, alturaBarra - alturaNumero, cor, larguraBarra)
|
|
End If
|
|
|
|
larguraAtual = larguraAtual + larguraBarra
|
|
Next
|
|
|
|
'Desenha o número abaixo do código de barras'
|
|
Dim fonte As B4XFont = xui.CreateFontAwesome(63)
|
|
|
|
Dim sb As StringBuilder
|
|
sb.Initialize
|
|
|
|
For i=1 To codigo.Length
|
|
Dim codigoCaracter As String = codigo.CharAt(i-1)
|
|
sb.Append(codigoCaracter)
|
|
|
|
If i=1 Then
|
|
sb.Append(" ")
|
|
Else If i=6 Then
|
|
sb.Append(" ")
|
|
Else If i=11 Then
|
|
sb.Append(" ")
|
|
Else If i=12 Then
|
|
'nao adiciona nada
|
|
Else
|
|
sb.Append(" ")
|
|
End If
|
|
Next
|
|
|
|
cvs.DrawText(sb.ToString, 1dip, alturaBarra+10dip, fonte, xui.Color_Black, "LEFT")
|
|
|
|
End If
|
|
|
|
End If
|
|
cvs.Invalidate
|
|
Dim res As B4XBitmap = cvs.CreateBitmap
|
|
cvs.Release
|
|
Return res
|
|
End Sub
|
|
|
|
Private Sub preparaUPCA(codigo As String) As String
|
|
|
|
Dim primeiroGrupo As String = codigo.SubString2(0,6)
|
|
Dim segundoGrupo As String = codigo.SubString2(6,12)
|
|
|
|
Dim sequenciaNovo As String = "-JLLLLL=RRRRRS-"
|
|
Dim codigoNovo As String = "-" & primeiroGrupo & "=" & segundoGrupo & "-"
|
|
|
|
Dim sb As StringBuilder
|
|
sb.Initialize
|
|
|
|
For i=0 To codigoNovo.Length-1
|
|
Dim digitoGrupo As String = codigoNovo.CharAt(i)
|
|
Dim sequenciaGrupo As String = sequenciaNovo.CharAt(i)
|
|
|
|
If sequenciaGrupo="L" Then
|
|
If digitoGrupo="0" Then sb.Append("0001101")
|
|
If digitoGrupo="1" Then sb.Append("0011001")
|
|
If digitoGrupo="2" Then sb.Append("0010011")
|
|
If digitoGrupo="3" Then sb.Append("0111101")
|
|
If digitoGrupo="4" Then sb.Append("0100011")
|
|
If digitoGrupo="5" Then sb.Append("0110001")
|
|
If digitoGrupo="6" Then sb.Append("0101111")
|
|
If digitoGrupo="7" Then sb.Append("0111011")
|
|
If digitoGrupo="8" Then sb.Append("0110111")
|
|
If digitoGrupo="9" Then sb.Append("0001011")
|
|
Else If sequenciaGrupo="J" Then
|
|
If digitoGrupo="0" Then sb.Append("0001101".Replace("1","2"))
|
|
If digitoGrupo="1" Then sb.Append("0011001".Replace("1","2"))
|
|
If digitoGrupo="2" Then sb.Append("0010011".Replace("1","2"))
|
|
If digitoGrupo="3" Then sb.Append("0111101".Replace("1","2"))
|
|
If digitoGrupo="4" Then sb.Append("0100011".Replace("1","2"))
|
|
If digitoGrupo="5" Then sb.Append("0110001".Replace("1","2"))
|
|
If digitoGrupo="6" Then sb.Append("0101111".Replace("1","2"))
|
|
If digitoGrupo="7" Then sb.Append("0111011".Replace("1","2"))
|
|
If digitoGrupo="8" Then sb.Append("0110111".Replace("1","2"))
|
|
If digitoGrupo="9" Then sb.Append("0001011".Replace("1","2"))
|
|
Else If sequenciaGrupo="R" Then
|
|
If digitoGrupo="0" Then sb.Append("1110010")
|
|
If digitoGrupo="1" Then sb.Append("1100110")
|
|
If digitoGrupo="2" Then sb.Append("1101100")
|
|
If digitoGrupo="3" Then sb.Append("1000010")
|
|
If digitoGrupo="4" Then sb.Append("1011100")
|
|
If digitoGrupo="5" Then sb.Append("1001110")
|
|
If digitoGrupo="6" Then sb.Append("1010000")
|
|
If digitoGrupo="7" Then sb.Append("1000100")
|
|
If digitoGrupo="8" Then sb.Append("1001000")
|
|
If digitoGrupo="9" Then sb.Append("1110100")
|
|
Else If sequenciaGrupo="S" Then
|
|
If digitoGrupo="0" Then sb.Append("1110010".Replace("1","2"))
|
|
If digitoGrupo="1" Then sb.Append("1100110".Replace("1","2"))
|
|
If digitoGrupo="2" Then sb.Append("1101100".Replace("1","2"))
|
|
If digitoGrupo="3" Then sb.Append("1000010".Replace("1","2"))
|
|
If digitoGrupo="4" Then sb.Append("1011100".Replace("1","2"))
|
|
If digitoGrupo="5" Then sb.Append("1001110".Replace("1","2"))
|
|
If digitoGrupo="6" Then sb.Append("1010000".Replace("1","2"))
|
|
If digitoGrupo="7" Then sb.Append("1000100".Replace("1","2"))
|
|
If digitoGrupo="8" Then sb.Append("1001000".Replace("1","2"))
|
|
If digitoGrupo="9" Then sb.Append("1110100".Replace("1","2"))
|
|
Else If sequenciaGrupo="-" Then
|
|
sb.Append("202")
|
|
Else If sequenciaGrupo="=" Then
|
|
sb.Append("02020")
|
|
End If
|
|
Next
|
|
|
|
Return sb.ToString
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
#Region CODE128
|
|
|
|
Public Sub CODE128(codigo As String) As B4XBitmap
|
|
cvs.Initialize(xview)
|
|
cvs.ClearRect(cvs.TargetRect)
|
|
|
|
Dim novoCodigo As String = preparaCODE128(codigo)
|
|
|
|
If novoCodigo<>"" Then
|
|
|
|
'Dim canvas As B4XCanvas
|
|
Dim alturaPainel As Int = xview.Height
|
|
Dim larguraPainel As Int = xview.Width
|
|
Dim larguraCodigo As Int = xview.Width - 100dip
|
|
|
|
'Calcula as dimensões dos elementos do código de barras'
|
|
Dim alturaNumero As Int = 40dip 'altura dos números abaixo do código'
|
|
Dim larguraBarra As Int = larguraCodigo / ((codigo.Length*11)+11+11+13) 'largura de cada barra'
|
|
Dim alturaBarra As Int = alturaPainel - alturaNumero'altura das barras'
|
|
|
|
|
|
'Desenha as barras e os números do código de barras'
|
|
Dim rect As B4XRect
|
|
rect.Initialize(0, 0, larguraPainel, alturaPainel)
|
|
|
|
cvs.DrawRect(rect, xui.Color_White, True, 0) 'fundo branco'
|
|
|
|
Dim larguraAtual As Int = 50dip
|
|
|
|
For i=0 To novoCodigo.Length-1
|
|
Dim cor As Int = xui.Color_Black
|
|
If novoCodigo.CharAt(i) = "0" Then cor = xui.Color_White
|
|
If novoCodigo.CharAt(i) = "2" Then
|
|
cvs.DrawLine(larguraAtual, 0, larguraAtual, alturaBarra, cor, larguraBarra)
|
|
Else If novoCodigo.CharAt(i) = "3" Then
|
|
cvs.DrawLine(larguraAtual, 0, larguraAtual, alturaBarra, xui.Color_Blue, larguraBarra)
|
|
Else
|
|
cvs.DrawLine(larguraAtual, 0, larguraAtual, alturaBarra - alturaNumero, cor, larguraBarra)
|
|
End If
|
|
|
|
larguraAtual = larguraAtual + larguraBarra
|
|
Next
|
|
|
|
'Desenha o número abaixo do código de barras'
|
|
Dim fonte As B4XFont = xui.CreateFontAwesome(63)
|
|
|
|
cvs.DrawText(codigo, cvs.TargetRect.CenterX, alturaBarra+10dip, fonte, xui.Color_Black, "CENTER")
|
|
|
|
End If
|
|
|
|
cvs.Invalidate
|
|
Dim res As B4XBitmap = cvs.CreateBitmap
|
|
cvs.Release
|
|
Return res
|
|
End Sub
|
|
|
|
Private Sub preparaCODE128(codigo As String) As String
|
|
|
|
Dim codigoNovo As String = codigo
|
|
|
|
Dim sb As StringBuilder
|
|
sb.Initialize
|
|
|
|
sb.Append("11010010000") ' iniciar codigo b
|
|
|
|
Dim somatoria As Int = 104 ' valor do inicio
|
|
|
|
For i=0 To codigoNovo.Length-1
|
|
Dim digitoGrupo As String = codigoNovo.CharAt(i)
|
|
|
|
Dim multiplicador As Int = (i+1)
|
|
Dim valorDigito As Int = valorDigitoCODE128(digitoGrupo)
|
|
Dim valorDigitoMultiplicado As Int = (multiplicador*valorDigito)
|
|
somatoria = (somatoria + valorDigitoMultiplicado)
|
|
|
|
sb.Append(sequenciaDigitoCODE128(digitoGrupo))
|
|
Next
|
|
|
|
Dim checksum As Int = (somatoria Mod 103)
|
|
Dim checksumDigito As String = codigoDigitoCODE128(checksum)
|
|
|
|
sb.Append(sequenciaDigitoCODE128(checksumDigito))
|
|
|
|
sb.Append("1100011101011") 'fim do codigo
|
|
|
|
Return sb.ToString
|
|
End Sub
|
|
|
|
Private Sub sequenciaDigitoCODE128(digitoGrupo As String) As String
|
|
If digitoGrupo=" " Then Return "11011001100"
|
|
If digitoGrupo="!" Then Return "11001101100"
|
|
If digitoGrupo=$"""$ Then Return "11001100110"
|
|
If digitoGrupo="#" Then Return "10010011000"
|
|
If digitoGrupo="$" Then Return "10010001100"
|
|
If digitoGrupo="%" Then Return "10001001100"
|
|
If digitoGrupo="&" Then Return "10011001000"
|
|
If digitoGrupo="'" Then Return "10011000100"
|
|
If digitoGrupo="(" Then Return "10001100100"
|
|
If digitoGrupo=")" Then Return "11001001000"
|
|
If digitoGrupo="*" Then Return "11001000100"
|
|
If digitoGrupo="+" Then Return "11000100100"
|
|
If digitoGrupo="," Then Return "10110011100"
|
|
If digitoGrupo="-" Then Return "10011011100"
|
|
If digitoGrupo="." Then Return "10011001110"
|
|
If digitoGrupo="/" Then Return "10111001100"
|
|
If digitoGrupo="0" Then Return "10011101100"
|
|
If digitoGrupo="1" Then Return "10011100110"
|
|
If digitoGrupo="2" Then Return "11001110010"
|
|
If digitoGrupo="3" Then Return "11001011100"
|
|
If digitoGrupo="4" Then Return "11001001110"
|
|
If digitoGrupo="5" Then Return "11011100100"
|
|
If digitoGrupo="6" Then Return "11001110100"
|
|
If digitoGrupo="7" Then Return "11101101110"
|
|
If digitoGrupo="8" Then Return "11101001100"
|
|
If digitoGrupo="9" Then Return "11100101100"
|
|
If digitoGrupo=":" Then Return "11100100110"
|
|
If digitoGrupo=";" Then Return "11101100100"
|
|
If digitoGrupo="<" Then Return "11100110100"
|
|
If digitoGrupo="=" Then Return "11100110010"
|
|
If digitoGrupo=">" Then Return "11011011000"
|
|
If digitoGrupo="?" Then Return "11011000110"
|
|
If digitoGrupo="@" Then Return "11000110110"
|
|
If digitoGrupo="A" Then Return "10100011000"
|
|
If digitoGrupo="B" Then Return "10001011000"
|
|
If digitoGrupo="C" Then Return "10001000110"
|
|
If digitoGrupo="D" Then Return "10110001000"
|
|
If digitoGrupo="E" Then Return "10001101000"
|
|
If digitoGrupo="F" Then Return "10001100010"
|
|
If digitoGrupo="G" Then Return "11010001000"
|
|
If digitoGrupo="H" Then Return "11000101000"
|
|
If digitoGrupo="I" Then Return "11000100010"
|
|
If digitoGrupo="J" Then Return "10110111000"
|
|
If digitoGrupo="K" Then Return "10110001110"
|
|
If digitoGrupo="L" Then Return "10001101110"
|
|
If digitoGrupo="M" Then Return "10111011000"
|
|
If digitoGrupo="N" Then Return "10111000110"
|
|
If digitoGrupo="O" Then Return "10001110110"
|
|
If digitoGrupo="P" Then Return "11101110110"
|
|
If digitoGrupo="Q" Then Return "11010001110"
|
|
If digitoGrupo="R" Then Return "11000101110"
|
|
If digitoGrupo="S" Then Return "11011101000"
|
|
If digitoGrupo="T" Then Return "11011100010"
|
|
If digitoGrupo="U" Then Return "11011101110"
|
|
If digitoGrupo="V" Then Return "11101011000"
|
|
If digitoGrupo="W" Then Return "11101000110"
|
|
If digitoGrupo="X" Then Return "11100010110"
|
|
If digitoGrupo="Y" Then Return "11101101000"
|
|
If digitoGrupo="Z" Then Return "11101100010"
|
|
If digitoGrupo="[" Then Return "11100011010"
|
|
If digitoGrupo="\" Then Return "11101111010"
|
|
If digitoGrupo="]" Then Return "11001000010"
|
|
If digitoGrupo="^" Then Return "11110001010"
|
|
If digitoGrupo="_" Then Return "10100110000"
|
|
If digitoGrupo="`" Then Return "10100001100"
|
|
If digitoGrupo="a" Then Return "10010110000"
|
|
If digitoGrupo="b" Then Return "10010000110"
|
|
If digitoGrupo="c" Then Return "10000101100"
|
|
If digitoGrupo="d" Then Return "10000100110"
|
|
If digitoGrupo="e" Then Return "10110010000"
|
|
If digitoGrupo="f" Then Return "10110000100"
|
|
If digitoGrupo="g" Then Return "10011010000"
|
|
If digitoGrupo="h" Then Return "10011000010"
|
|
If digitoGrupo="i" Then Return "10000110100"
|
|
If digitoGrupo="j" Then Return "10000110010"
|
|
If digitoGrupo="k" Then Return "11000010010"
|
|
If digitoGrupo="l" Then Return "11001010000"
|
|
If digitoGrupo="m" Then Return "11110111010"
|
|
If digitoGrupo="n" Then Return "11000010100"
|
|
If digitoGrupo="o" Then Return "10001111010"
|
|
If digitoGrupo="p" Then Return "10100111100"
|
|
If digitoGrupo="q" Then Return "10010111100"
|
|
If digitoGrupo="r" Then Return "10010011110"
|
|
If digitoGrupo="s" Then Return "10111100100"
|
|
If digitoGrupo="t" Then Return "10011110100"
|
|
If digitoGrupo="u" Then Return "10011110010"
|
|
If digitoGrupo="v" Then Return "11110100100"
|
|
If digitoGrupo="w" Then Return "11110010100"
|
|
If digitoGrupo="x" Then Return "11110010010"
|
|
If digitoGrupo="y" Then Return "11011011110"
|
|
If digitoGrupo="z" Then Return "11011110110"
|
|
If digitoGrupo="{" Then Return "11110110110"
|
|
If digitoGrupo="|" Then Return "10101111000"
|
|
If digitoGrupo="}" Then Return "10100011110"
|
|
If digitoGrupo="~" Then Return "10001011110"
|
|
|
|
Return ""
|
|
End Sub
|
|
|
|
Private Sub valorDigitoCODE128(digitoGrupo As String) As Int
|
|
|
|
If digitoGrupo=" " Then Return 0
|
|
If digitoGrupo="!" Then Return 1
|
|
If digitoGrupo=$"""$ Then Return 2
|
|
If digitoGrupo="#" Then Return 3
|
|
If digitoGrupo="$" Then Return 4
|
|
If digitoGrupo="%" Then Return 5
|
|
If digitoGrupo="&" Then Return 6
|
|
If digitoGrupo="'" Then Return 7
|
|
If digitoGrupo="(" Then Return 8
|
|
If digitoGrupo=")" Then Return 9
|
|
If digitoGrupo="*" Then Return 10
|
|
If digitoGrupo="+" Then Return 11
|
|
If digitoGrupo="," Then Return 12
|
|
If digitoGrupo="-" Then Return 13
|
|
If digitoGrupo="." Then Return 14
|
|
If digitoGrupo="/" Then Return 15
|
|
If digitoGrupo="0" Then Return 16
|
|
If digitoGrupo="1" Then Return 17
|
|
If digitoGrupo="2" Then Return 18
|
|
If digitoGrupo="3" Then Return 19
|
|
If digitoGrupo="4" Then Return 20
|
|
If digitoGrupo="5" Then Return 21
|
|
If digitoGrupo="6" Then Return 22
|
|
If digitoGrupo="7" Then Return 23
|
|
If digitoGrupo="8" Then Return 24
|
|
If digitoGrupo="9" Then Return 25
|
|
If digitoGrupo=":" Then Return 26
|
|
If digitoGrupo=";" Then Return 27
|
|
If digitoGrupo="<" Then Return 28
|
|
If digitoGrupo="=" Then Return 29
|
|
If digitoGrupo=">" Then Return 30
|
|
If digitoGrupo="?" Then Return 31
|
|
If digitoGrupo="@" Then Return 32
|
|
If digitoGrupo="A" Then Return 33
|
|
If digitoGrupo="B" Then Return 34
|
|
If digitoGrupo="C" Then Return 35
|
|
If digitoGrupo="D" Then Return 36
|
|
If digitoGrupo="E" Then Return 37
|
|
If digitoGrupo="F" Then Return 38
|
|
If digitoGrupo="G" Then Return 39
|
|
If digitoGrupo="H" Then Return 40
|
|
If digitoGrupo="I" Then Return 41
|
|
If digitoGrupo="J" Then Return 42
|
|
If digitoGrupo="K" Then Return 43
|
|
If digitoGrupo="L" Then Return 44
|
|
If digitoGrupo="M" Then Return 45
|
|
If digitoGrupo="N" Then Return 46
|
|
If digitoGrupo="O" Then Return 47
|
|
If digitoGrupo="P" Then Return 48
|
|
If digitoGrupo="Q" Then Return 49
|
|
If digitoGrupo="R" Then Return 50
|
|
If digitoGrupo="S" Then Return 51
|
|
If digitoGrupo="T" Then Return 52
|
|
If digitoGrupo="U" Then Return 53
|
|
If digitoGrupo="V" Then Return 54
|
|
If digitoGrupo="W" Then Return 55
|
|
If digitoGrupo="X" Then Return 56
|
|
If digitoGrupo="Y" Then Return 57
|
|
If digitoGrupo="Z" Then Return 58
|
|
If digitoGrupo="[" Then Return 59
|
|
If digitoGrupo="\" Then Return 60
|
|
If digitoGrupo="]" Then Return 61
|
|
If digitoGrupo="^" Then Return 62
|
|
If digitoGrupo="_" Then Return 63
|
|
If digitoGrupo="`" Then Return 64
|
|
If digitoGrupo="a" Then Return 65
|
|
If digitoGrupo="b" Then Return 66
|
|
If digitoGrupo="c" Then Return 67
|
|
If digitoGrupo="d" Then Return 68
|
|
If digitoGrupo="e" Then Return 69
|
|
If digitoGrupo="f" Then Return 70
|
|
If digitoGrupo="g" Then Return 71
|
|
If digitoGrupo="h" Then Return 72
|
|
If digitoGrupo="i" Then Return 73
|
|
If digitoGrupo="j" Then Return 74
|
|
If digitoGrupo="k" Then Return 75
|
|
If digitoGrupo="l" Then Return 76
|
|
If digitoGrupo="m" Then Return 77
|
|
If digitoGrupo="n" Then Return 78
|
|
If digitoGrupo="o" Then Return 79
|
|
If digitoGrupo="p" Then Return 80
|
|
If digitoGrupo="q" Then Return 81
|
|
If digitoGrupo="r" Then Return 82
|
|
If digitoGrupo="s" Then Return 83
|
|
If digitoGrupo="t" Then Return 84
|
|
If digitoGrupo="u" Then Return 85
|
|
If digitoGrupo="v" Then Return 86
|
|
If digitoGrupo="w" Then Return 87
|
|
If digitoGrupo="x" Then Return 88
|
|
If digitoGrupo="y" Then Return 89
|
|
If digitoGrupo="z" Then Return 90
|
|
If digitoGrupo="{" Then Return 91
|
|
If digitoGrupo="|" Then Return 92
|
|
If digitoGrupo="}" Then Return 93
|
|
If digitoGrupo="~" Then Return 94
|
|
|
|
Return 0
|
|
End Sub
|
|
|
|
Private Sub codigoDigitoCODE128(digitoGrupo As Int) As String
|
|
|
|
If digitoGrupo=0 Then Return " "
|
|
If digitoGrupo=1 Then Return "!"
|
|
If digitoGrupo=2 Then Return $"""$
|
|
If digitoGrupo=3 Then Return "#"
|
|
If digitoGrupo=4 Then Return "$"
|
|
If digitoGrupo=5 Then Return "%"
|
|
If digitoGrupo=6 Then Return "&"
|
|
If digitoGrupo=7 Then Return "'"
|
|
If digitoGrupo=8 Then Return "("
|
|
If digitoGrupo=9 Then Return ")"
|
|
If digitoGrupo=10 Then Return "*"
|
|
If digitoGrupo=11 Then Return "+"
|
|
If digitoGrupo=12 Then Return ","
|
|
If digitoGrupo=13 Then Return "-"
|
|
If digitoGrupo=14 Then Return "."
|
|
If digitoGrupo=15 Then Return "/"
|
|
If digitoGrupo=16 Then Return "0"
|
|
If digitoGrupo=17 Then Return "1"
|
|
If digitoGrupo=18 Then Return "2"
|
|
If digitoGrupo=19 Then Return "3"
|
|
If digitoGrupo=20 Then Return "4"
|
|
If digitoGrupo=21 Then Return "5"
|
|
If digitoGrupo=22 Then Return "6"
|
|
If digitoGrupo=23 Then Return "7"
|
|
If digitoGrupo=24 Then Return "8"
|
|
If digitoGrupo=25 Then Return "9"
|
|
If digitoGrupo=26 Then Return ":"
|
|
If digitoGrupo=27 Then Return ";"
|
|
If digitoGrupo=28 Then Return "<"
|
|
If digitoGrupo=29 Then Return "="
|
|
If digitoGrupo=30 Then Return ">"
|
|
If digitoGrupo=31 Then Return "?"
|
|
If digitoGrupo=32 Then Return "@"
|
|
If digitoGrupo=33 Then Return "A"
|
|
If digitoGrupo=34 Then Return "B"
|
|
If digitoGrupo=35 Then Return "C"
|
|
If digitoGrupo=36 Then Return "D"
|
|
If digitoGrupo=37 Then Return "E"
|
|
If digitoGrupo=38 Then Return "F"
|
|
If digitoGrupo=39 Then Return "G"
|
|
If digitoGrupo=40 Then Return "H"
|
|
If digitoGrupo=41 Then Return "I"
|
|
If digitoGrupo=42 Then Return "J"
|
|
If digitoGrupo=43 Then Return "K"
|
|
If digitoGrupo=44 Then Return "L"
|
|
If digitoGrupo=45 Then Return "M"
|
|
If digitoGrupo=46 Then Return "N"
|
|
If digitoGrupo=47 Then Return "O"
|
|
If digitoGrupo=48 Then Return "P"
|
|
If digitoGrupo=49 Then Return "Q"
|
|
If digitoGrupo=50 Then Return "R"
|
|
If digitoGrupo=51 Then Return "S"
|
|
If digitoGrupo=52 Then Return "T"
|
|
If digitoGrupo=53 Then Return "U"
|
|
If digitoGrupo=54 Then Return "V"
|
|
If digitoGrupo=55 Then Return "W"
|
|
If digitoGrupo=56 Then Return "X"
|
|
If digitoGrupo=57 Then Return "Y"
|
|
If digitoGrupo=58 Then Return "Z"
|
|
If digitoGrupo=59 Then Return "["
|
|
If digitoGrupo=60 Then Return "\"
|
|
If digitoGrupo=61 Then Return "]"
|
|
If digitoGrupo=62 Then Return "^"
|
|
If digitoGrupo=63 Then Return "_"
|
|
If digitoGrupo=64 Then Return "`"
|
|
If digitoGrupo=65 Then Return "a"
|
|
If digitoGrupo=66 Then Return "b"
|
|
If digitoGrupo=67 Then Return "c"
|
|
If digitoGrupo=68 Then Return "d"
|
|
If digitoGrupo=69 Then Return "e"
|
|
If digitoGrupo=70 Then Return "f"
|
|
If digitoGrupo=71 Then Return "g"
|
|
If digitoGrupo=72 Then Return "h"
|
|
If digitoGrupo=73 Then Return "i"
|
|
If digitoGrupo=74 Then Return "j"
|
|
If digitoGrupo=75 Then Return "k"
|
|
If digitoGrupo=76 Then Return "l"
|
|
If digitoGrupo=77 Then Return "m"
|
|
If digitoGrupo=78 Then Return "n"
|
|
If digitoGrupo=79 Then Return "o"
|
|
If digitoGrupo=80 Then Return "p"
|
|
If digitoGrupo=81 Then Return "q"
|
|
If digitoGrupo=82 Then Return "r"
|
|
If digitoGrupo=83 Then Return "s"
|
|
If digitoGrupo=84 Then Return "t"
|
|
If digitoGrupo=85 Then Return "u"
|
|
If digitoGrupo=86 Then Return "v"
|
|
If digitoGrupo=87 Then Return "w"
|
|
If digitoGrupo=88 Then Return "x"
|
|
If digitoGrupo=89 Then Return "y"
|
|
If digitoGrupo=90 Then Return "z"
|
|
If digitoGrupo=91 Then Return "{"
|
|
If digitoGrupo=92 Then Return "|"
|
|
If digitoGrupo=93 Then Return "}"
|
|
If digitoGrupo=94 Then Return "~"
|
|
|
|
Return " "
|
|
End Sub
|
|
|
|
#End Region |