FoxPro/Visual FoxPro - Ayuda con una funcion

 
Vista:
sin imagen de perfil

Ayuda con una funcion

Publicado por Felix wilson (1 intervención) el 14/07/2023 01:06:03
Hola amigos, ayudenme con el siguiente problema, es que cree una funcion para imprimir codigo de barras pero a la hora de llamarla desde el formulario me da unas clases de errores que no entiendo, porque creo que lo estoy haciendo bien, aqui les dejo el codigo espero me ayuden,


SET PRINTER TO NAME 'Default'
SET PRINTER ON

* Función para generar el código de barras Code39
FUNCTION GenerateCode39(tcData)
LOCAL lcCode39, lnLength, lnIndex, lcChar, lcResult
lcCode39 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%'
lnLength = LEN(tcData)
lcResult = ""

FOR lnIndex = 1 TO lnLength
lcChar = SUBSTR(tcData, lnIndex, 1)
lcResult = lcResult + TRANSFORM(AT(lcChar, lcCode39) - 1)
NEXT

RETURN lcResult
ENDFUNC

* Función para imprimir el código de barras
PROCEDURE PrintBarcodeCode39(tcData, tnPosX, tnPosY, tnHeight, tnNarrowWidth)
LOCAL lnIndex, lcCode, lnLength, lnCharWidth, lnPosX

lnLength = LEN(tcData)
lnCharWidth = tnNarrowWidth * 3

* Mapeo de los caracteres
lcCode = GenerateCode39(tcData)

* Posición inicial de impresión
lnPosX = tnPosX

* Dibuja el código de barras
FOR lnIndex = 1 TO lnLength
lcChar = SUBSTR(lcCode, lnIndex, 1)

DO CASE
CASE lcChar = "0"
* Representación del carácter '0'
lnCharWidth = tnNarrowWidth * 3
CASE lcChar = "1"
* Representación del carácter '1'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "2"
* Representación del carácter '2'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "3"
* Representación del carácter '3'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "4"
* Representación del carácter '4'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "5"
* Representación del carácter '5'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "6"
* Representación del carácter '6'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "7"
* Representación del carácter '7'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "8"
* Representación del carácter '8'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "9"
* Representación del carácter '9'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "A"
* Representación del carácter 'A'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "B"
* Representación del carácter 'B'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "C"
* Representación del carácter 'C'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "D"
* Representación del carácter 'D'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "E"
* Representación del carácter 'E'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "F"
* Representación del carácter 'F'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "G"
* Representación del carácter 'G'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "H"
* Representación del carácter 'H'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "I"
* Representación del carácter 'I'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "J"
* Representación del carácter 'J'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "K"
* Representación del carácter 'K'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "L"
* Representación del carácter 'L'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "M"
* Representación del carácter 'M'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "N"
* Representación del carácter 'N'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "O"
* Representación del carácter 'O'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "P"
* Representación del carácter 'P'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "Q"
* Representación del carácter 'Q'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "R"
* Representación del carácter 'R'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "S"
* Representación del carácter 'S'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "T"
* Representación del carácter 'T'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "U"
* Representación del carácter 'U'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "V"
* Representación del carácter 'V'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "W"
* Representación del carácter 'W'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "X"
* Representación del carácter 'X'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "Y"
* Representación del carácter 'Y'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "Z"
* Representación del carácter 'Z'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "-"
* Representación del carácter '-'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "."
* Representación del carácter '.'
lnCharWidth = tnNarrowWidth * 1
55CASE lcChar = "$"
* Representación del carácter '$'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "/"
* Representación del carácter '/'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "+"
* Representación del carácter '+'
lnCharWidth = tnNarrowWidth * 1
CASE lcChar = "%"
* Representación del carácter '%'
lnCharWidth = tnNarrowWidth * 1
ENDCASE

* Dibuja una barra vertical
@lnPosX, tnPosY TO lnPosX + lnCharWidth, tnPosY + tnHeight, BOX

* Incrementa la posición para el siguiente carácter
lnPosX = lnPosX + lnCharWidth
NEXT
ENDPROC


* Uso del código para imprimir el código de barras Code39
LOCAL lcData
lcData = "12345" && Datos del código de barras

* Configuración de la posición y tamaño del código de barras
LOCAL lnPosX, lnPosY, lnHeight, lnNarrowWidth
lnPosX = 100 && Posición X de inicio
lnPosY = 100 && Posición Y de inicio
lnHeight = 50 && Altura del código de barras
lnNarrowWidth = 2 && Ancho de la barra estrecha

* Llamada a la función para imprimir el código de barras
PrintBarcodeCode39(lcData, lnPosX, lnPosY, lnHeight, lnNarrowWidth)

* Apagado de la impresora
SET PRINTER OFF

gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Ayuda con una funcion

Publicado por Jorge (1 intervención) el 19/07/2023 20:34:08
y cual es el error ????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar