si, la función la copié de un report a otro, que es esta:
Function Generar_EAN128(Codigo as String) As String
’ V 2.0.0
’ Esta función permite generar el código de barras para mostrarlo con la fuente CODE128.TTF
’ - Parametros : cadenas del código
’ - Retorno: retorna una cadena que permite representar generar el código de barras con la fuente CODE128.TTF
’ retorna una cadena vacía si no se puede representar el código de barras
dim i, checksum, mini, dummy as number
dim code128 as string
dim tableB As Boolean
code128=“”
If Len(Codigo) > 0 Then
’ Verificar si los caracteres son válidos
For i = 1 To Len(Codigo)
Select Case Asc(Mid(Codigo, i, 1))
Case 32 To 126, 203
Case Else
Codigo=“”
Exit For
End Select
Next
End If
If Len(Codigo) > 0 Then
'Calcular de la cadena de código optimizando el uso de las tablas B y C
tableB=true
i = 1 ' Iniciar el indice de la cadena
Do While i <= Len(Codigo)
If tableB Then
'Ver si interesa cambiar a la tabla C si para 4 dígitos de inicio o final sino 6 dígitos
mini = IIf(i = 1 Or i + 3 = Len(Codigo), 4, 6)
mini = TestNum (Codigo, i, mini)
If mini < 0 Then 'Cambiando a la tabla C
If i = 1 Then 'Iniciando con la tabla C
code128 = Chr(210)
Else 'Cambiar a la tabla C
code128 = code128 & Chr(204)
End If
tableB = False
Else
If i = 1 Then code128 = Chr(209) 'Iniciando con la tabla B
End If
End If
If Not tableB Then
'Si estabamos en la tabla C se intentan procesar 2 dígitos
mini = 2
mini = TestNum (Codigo, i, mini)
If mini < 0 Then 'Procesar 2 dígitos
dummy = Val(Mid(Codigo, i, 2))
dummy = IIf(dummy < 95, dummy + 32, dummy + 105)
code128 = code128 & Chr(dummy)
i = i + 2
Else 'Si no tiene 2 dígitos se cambia a la tabla B
code128 = code128 & Chr(205)
tableB = True
End If
End If
If tableB Then
'Procesar 1 dígito con la tabla B
code128 = code128 & Mid(Codigo, i, 1)
i = i + 1
End If
Loop
'Calcular el checksum
For i = 1 To Len(code128)
dummy = Asc(Mid(code128, i, 1))
dummy = IIf(dummy < 127, dummy - 32, dummy - 105)
If i = 1 Then checksum = dummy
checksum = (checksum + (i - 1) * dummy) Mod 103
Next
'Calculando el código ASCII de checksum
checksum = IIf(checksum < 95, checksum + 32, checksum + 105)
'Añadir el checksum y parar
code128 = code128 & Chr(checksum) & Chr(211)
End If
Generar_EAN128=code128
End Function
Y la formula me aparece asi como mostré antes:
y no como está el informe original que es así:
supongo que por eso cuando intento realizar la vista previa me aparece este error: