[vfp] Codigos de Barras

331 views
Skip to first unread message

Rita Cecila Restrepo De La Hoz

unread,
Apr 21, 2012, 9:42:08 AM4/21/12
to Comunidad de Visual Foxpro en Español
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

Intel Man

unread,
Apr 21, 2012, 9:54:34 AM4/21/12
to publice...@googlegroups.com
Hola, muchos usan el foxbarcode de Luis Maria, pero yo uso la fuente:  3of9.ttf

Lo puedes encontrar aqui:    http://www.tipografiaz.com/index.php?fuente_pre=3OF9.TTF


Solo es usar esa fuente en cualquier control y sassssss ya está generado tu codigo de barras :)

Haz la prueba creando un label asi mas o menos:

with thisform.label1
  .caption="*1234*"
  .fontname="3of9"
endwith

PD.1: Los * al inicio y al final son obligatorios.
P.D.2; No te olvides de copiar el archivo 3of9.ttf en la carpeta:  C:\windows\fonts  para que sea reconozido.

Saludos.




Date: Sat, 21 Apr 2012 08:42:08 -0500
Subject: [vfp] Codigos de Barras
From: ritacecil...@gmail.com
To: publice...@googlegroups.com

Luis Maria Guayan

unread,
Apr 21, 2012, 10:10:50 AM4/21/12
to publice...@googlegroups.com
Para lo que tu quieres debes configurar el nombre de la fuente (propiedad FontName) de tu TextBox con el nombre de la fuente TrueType que estás utilizando (Ej: Code 128AB o PF Barcode 128), pero yo no te lo aconsejo mostrar un código de barra en un TextBox, ni en un Label que seria mejor.

Si tu quieres mostrar una imagen de un código de barras en el formulario, lo mejor es que utilices la clase FoxBarcode que la puedes descargar de: http://sites.google.com/site/foxbarcode

Junto con la descarga tienes varios ejemplos de mostrar un código de barras en un formulario.

-- FoxBarcode --
http://sites.google.com/site/foxbarcode
http://vfpx.codeplex.com/wikipage?title=FoxBarcode

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Rita Cecila Restrepo De La Hoz

unread,
Apr 21, 2012, 10:53:09 AM4/21/12
to publice...@googlegroups.com
Gracias chicos probare inmediatamente sus sugerencias.

Un Abrazo

Rita.
Reply all
Reply to author
Forward
0 new messages