Hola chicos
Espero que estén pasando un lindo dia.
Estoy tratando de agregarle a mi Form una casilla con un código de Barras que es el mismo serial del arma, esto para agilizar la entrega de la misma.
Toma la información de un TEXBOX con CONTROLSOURCE = _NUCOBA (Numero codigo barra)
Tengo un objeto texbox donde lo muestro
ADD OBJECT text020106 AS TEXTBOX WITH ;
TOP = 102, ;
LEFT = 510, ;
HEIGHT = 48, ;
WIDTH = 204, ;
BORDERSTYLE = 0, ;
CONTROLSOURCE = VR_CODBAR, ;
FORMAT = "!", ;
MAXLENGTH = 30, ;
FONTNAME = "PF Barcode 128", ;
FONTSIZE = 20, ;
SELECTEDBACKCOLOR = RGB(255,255,255), ;
SELECTEDFORECOLOR = RGB(0,0,0), ;
DISABLEDBACKCOLOR = RGB(255,255,255), ;
DISABLEDFORECOLOR = RGB(0,0,0), ;
TABINDEX = 7, ;
VISIBLE = .F., ;
ENABLED = .T., ;
NAME = "text020106"
Tengo un procedimiento que lo interpreta, lo saque de PORTALFOX "Codigos de barras con lectura humana" de Luis Maria
** PROCEDIMIENTO DE PRESENTACION DEL CODIGO DE BARRAS
PROCEDURE codigo_barra
lcTexto = _NUCOBA
lcCodBar = _StrTo128A(lcTexto)
*** PROCEDIMIENTO DE INTERPRETACION DE CODIGO DE BARRAS
PROCEDURE _Strto128A
FUNCTION _StrTo128A(tcString)
LOCAL lcStart, lcStop, lcRet, lcCheck, ;
lnLong, lnI, lnCheckSum, lnAsc
lcStart = CHR(103 + 32)
lcStop = CHR(106 + 32)
lnCheckSum = ASC(lcStart) - 32
lcRet = tcString
lnLong = LEN(lcRet)
FOR lnI = 1 TO lnLong
lnAsc = ASC(SUBS(lcRet,lnI,1)) - 32
IF NOT BETWEEN(lnAsc,0,64)
lcRet = STUFF(lcRet,lnI,1,CHR(32))
lnAsc = ASC(SUBS(lcRet,lnI,1)) - 32
ENDIF
lnCheckSum = lnCheckSum + (lnAsc * lnI)
ENDFOR
lcCheck = CHR(MOD(lnCheckSum,103) + 32)
lcRet = lcStart + lcRet + lcCheck + lcStop
*--- Esto es para cambiar los espacios y caracteres invalidos
lcRet = STRTRAN(lcRet,CHR(32),CHR(232))
lcRet = STRTRAN(lcRet,CHR(127),CHR(192))
lcRet = STRTRAN(lcRet,CHR(128),CHR(193))
RETURN lcRet
ENDFUNC
Como hago para que me muestre el codigo de barras en el texbox text020106
sera asi?
VR_CODBAR = lcCodBar
SICA0201.text020106.VALUE = VR_CODBAR
Gracias por las recomendaciones.
Rita