Leer Codigo de Barras que tiene clave y peso

1,055 views
Skip to first unread message

emr

unread,
Jan 11, 2011, 11:57:29 PM1/11/11
to Comunidad de Visual Foxpro en Español
Hola saludos a todos

Mi pregunta es la siguiente, un cliente quiere que en el punto de
venta, pueda leer unos codigos de barras que genera una bascula en la
cual al tomar el peso del producto genera la etiqueta con el codigo
del producto y el peso del producto.

Alguien sabe como puedo separar del codigo que me genera, la parte del
codigo y la parte del peso.

ya que tengo el formulario en el cual puedo leer con el lector de
codigo de barras desde un textbox que tengo asignado para la clave o
codigo de barras.

ejemplo del codigo que genera la bascula


1 202008 021561


donde el 202008 es la clave del producto
y 02156 es 2.156 kgs

por lo que si leo este codigo de barras en el textbox logicamente me
dice que no se encuentra el producto en mi tabla de productos, alguna
idea de como tomar la clave al leerlo con el lector y posteriormente
separar el valor del codigo de barras y luego hacer la busqueda en la
tabla de productos.

Alguien lo ya lo hizo antes esto ?

Como siempre les agradezco mucho su ayuda

Saludos

Enrique Martinez Regalado
Puerto Vallarta, Jalisco México

Jose Antonio

unread,
Jan 12, 2011, 3:41:06 AM1/12/11
to publice...@googlegroups.com
Parece que los espacios marcan la separación de los datos que incluye
el código de barras.
Controlando dichos espacios con las funciones AT(), GETWORDCOUNT() y
GETWORDNUM(), puedes obtener lo que quieres.

Un saludo.

--
Jose A. Blasco
Zaragoza - España

marcelobuenosaires

unread,
Jan 12, 2011, 5:10:26 AM1/12/11
to publice...@googlegroups.com
Hola

Si los espacios que separan siempre son la misma cantidad
lo unico que tenes que hacer es utilizar la funcion
SUBSTR() y extraes la cadena que quieras

Saludos
MarceloBuenosAires
________________

El 12/01/2011 01:57 a.m., emr escribi�:

> Puerto Vallarta, Jalisco M�xico
>

Guillermo Carrero

unread,
Jan 12, 2011, 6:24:22 AM1/12/11
to Comunidad de Visual Foxpro en Español
La estructura del código de barras EAN-13 para peso variable, es la
siguiente:

XX YYYYY PPPPP C

X Prefijo que identifica la norma de peso variable. Normalmente 25 y
26
Y Los 5 números restantes son los que identifican al artículo, es el
código de producto. Este código, normalmente, deberá ser asignado por
la empresa.
P Es el importe que deberá satisfacer el consumidor por el producto.
En el caso de la moneda €, la coma de los decimales está entre el
tercer y cuarto dígito empezando por la izquierda.
C Se trata del dígito de control para el EAN-13

Lo ideal sería que dispongas de un campo en tu tabla que identifique
al producto con los 7 ó 5 dígitos y que mediante "PPPPP" calcules la
cantidad/peso según el precio por Kg. del artículo.

Te recuerdo que si necesitas imprimir las etiquetas correspondientes,
puedes utilizar la clase FoxBarcode http://sites.google.com/site/foxbarcode/

Un saludo,
Guillermo Carrero
Barcelona, España

Fcocibaeno

unread,
Jan 12, 2011, 11:55:22 AM1/12/11
to Comunidad de Visual Foxpro en Español
_codigo=SUBSTR(thisform.text1.value,3,6)
_peso=SUBSTR(thisform.text1.value,10,5)

!! suerte !!

Miguel Canchas

unread,
Jan 12, 2011, 12:17:07 PM1/12/11
to publice...@googlegroups.com
Tengo esto en una propiedad de mi form

Dato = PADR(aux_codaux, 18, " ") + PADR(aux_nomaux, 100, " ") + STR(soles_corte, 12,2 ) + STR(dolares_corte, 12,2)

Lo quiero ejecutar en un proceso y me lo muestra igual, quiero que se procese y me de el resultante,

Como haría ??
No funciona con &


Gracias por la ayuda..

MK

Luis Maria Guayan

unread,
Jan 12, 2011, 12:19:29 PM1/12/11
to publice...@googlegroups.com
Si es una línea de código VFP válida, puedes hacer:


Dato = PADR(aux_codaux, 18, " ") + PADR(aux_nomaux, 100, " ") + STR(soles_corte, 12,2 ) + STR(dolares_corte, 12,2)
EXECSCRIPT(Dato)

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

 

Miguel Canchas

unread,
Jan 12, 2011, 12:22:00 PM1/12/11
to publice...@googlegroups.com

Es lo que estoy haciendo EXECSCRIP

 

Raro que no funke…

 

Gracias

 

Mk

Luis Maria Guayan

unread,
Jan 12, 2011, 12:25:28 PM1/12/11
to publice...@googlegroups.com
¿Puedes mostrar el valor de la variable Datos?

Creo que quizás en vez de PADRL(algo,100," ") puede ser ALLTRIM(algo) + " "

Yvan GMAIL

unread,
Jan 12, 2011, 12:26:43 PM1/12/11
to publice...@googlegroups.com

Uhm.. pero algo está mal en tu línea de código..

Supongamos

Que aux_codaux = “XXXXXXXXXXXXXXXX”

AUX_NOMAUX = “YYYYYYYYYYYY”

SOLES_CORTE = 1000.45

DOLARES_CORTE = “9033.23”

 

PADR(aux_codaux, 18, " ") + PADR(aux_nomaux, 100, " ") + STR(soles_corte, 12,2 ) + STR(dolares_corte, 12,2)

 

Cadena a Ejecutar

“XXXXXYYYY1000.459033.23”

No le encuentro sentido a esa cadena

 

 

De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Luis Maria Guayan
Enviado el: Miércoles, 12 de Enero de 2011 12:19 p.m.
Para: publice...@googlegroups.com
Asunto: Re: [vfp] como ejecuto una linea de codigo guardada

 

Si es una línea de código VFP válida, puedes hacer:

Miguel Canchas

unread,
Jan 12, 2011, 12:47:44 PM1/12/11
to publice...@googlegroups.com

XXXXXYYYY    1000.45      9033.23

Es para un treeview

 

MK

Yvan GMAIL

unread,
Jan 12, 2011, 1:03:26 PM1/12/11
to publice...@googlegroups.com

Entonces no tienes que usar macrosustituciòn.. si solo lo vas a añadir como valor al tree-view.

Ricardo Pina

unread,
Jan 12, 2011, 12:51:34 PM1/12/11
to publice...@googlegroups.com
Hola Miguel

No entiendo muy bien que buscas pero fijate probando el execs de los
parciales, no se si es eso lo que buscas sino como dice Luis Maria
manda el valor de dato
para darnos una mejor idea

Saludos


El día 12 de enero de 2011 14:19, Luis Maria Guayan
<luis...@portalfox.com> escribió:

--
Ricardo Pina
D&SIP
Desarrollo y Servicios Informáticos Profesionales
www.dsip.com.ar

Miguel Canchas

unread,
Jan 12, 2011, 1:13:44 PM1/12/11
to publice...@googlegroups.com

this.arbol.font = this.letra

 

oTabla_Papa = this.tabla_papa

 

SELECT &oTabla_Papa

SCAN

 

      oCadena_Papa = this.campo_todo_papa

      oKey_Tree = PADR( this.campo_key, this.espacio_relleno, this.espacio_relleno_letra)

     

      This.arbol.Nodes.Add(, 1, &oKey_Tree, &oCadena_Papa )

 

 

 

Es una clase para un treeview,  todo esta correcto, por el depurador lo veo bien…

Yvan GMAIL

unread,
Jan 12, 2011, 1:45:09 PM1/12/11
to publice...@googlegroups.com

Miguel,

Hace tiempo que no uso tree.. pero

Y si le mandas asi:

Recuerdo que enviaba asi:

XCODIGO =  "C" + XC_CLASE + XC_FAMILIA                    

SELE RSFAMILIA         

XC_CLASE   = RSFAMILIA.C_CLASE

      XC_FAMILIA = RSFAMILIA.C_FAMILIA

      XNOMBRE    = ALLTRIM(RSFAMILIA.NOMBRE)

o = THISFORM.oleTree

o.Nodes.Add("C" + XC_CLASE,4,XCODIGO,XNOMBRE,3,3)                           

 

No le antepongo “&”

 

No será por eso tu error?

Miguel Canchas

unread,
Jan 12, 2011, 2:21:02 PM1/12/11
to publice...@googlegroups.com

Es que es una clase, a la que le paso el nombre de la tabla papa e hijo y lo crea a partir de ahí.

 

Veremos que le tengo que  hacer, de que lo hago andar, lo hago…….

Miguel Canchas

unread,
Jan 12, 2011, 2:36:54 PM1/12/11
to publice...@googlegroups.com

YA TA ¡!!!!!!!!!!!!!!  (sonido chun-li)

 

This.campo_todo_papa = PADR(aux_codaux, 18, " ") + PADR(aux_nomaux, 100, " ") + STR(soles_corte, 12,2 ) + STR(dolares_corte, 12,2)

This.campo_key = COD_AUX

This.espacio_relleano = 18

This.espacio_relleano_letra =  *

 

** todo esto es en la clase….

 

 

Esto ya es en el form……

 

this.arbol.font = this.letra

 

oTabla_Papa = this.tabla_papa

 

SELECT &oTabla_Papa

SCAN

 

      oCadena_Papa = this.campo_todo_papa

      oCadena_Papa = &oCadena_Papa

     

      oCampo_Key   = this.campo_key

      oKey_Tree = PADR( &oCampo_Key, this.espacio_relleno, this.espacio_relleno_letra)

     

      This.arbol.Nodes.Add(, 1, oKey_Tree, oCadena_Papa)

 

 

Este es el código—

Miguel Canchas

unread,
Jan 12, 2011, 5:54:04 PM1/12/11
to publice...@googlegroups.com

Como lo posiciono al primer ítem cuando expando un nodo ¿?

 

Si lo termino hoy lo paso a la lista para que lo usen/prueben.

 

 

 

MK

Ing.Daniel Bojorge

unread,
Jan 12, 2011, 6:11:49 PM1/12/11
to publice...@googlegroups.com
Bueno, sinceramente no sabría decirte como ayudarte, pero aprovecho la temática para poner un video que hice (ya hace varios años) sobre el tema (para los que no sepan como trabajar con el TreeView), aunque debo aclarar que es la única vez que lo he usado y no me declaro ESPECIALISTA, pero ahí va.




Dios L@s Bendiga

Saludos,

Daniel (Con 1 Estrella DCE de Microsoft)
Nicaragua

"Si ustedes permanecen unidos a mí, y si permanecen fieles a mis enseñanzas, pidan lo que quieran y se les dará.
(Juan 15:7 DHH)
Bendito el varón que se fía en el SEÑOR, y cuya confianza es el SEÑOR.
(Jeremías 17:7 RV2000)

Miguel Canchas

unread,
Jan 12, 2011, 6:30:09 PM1/12/11
to publice...@googlegroups.com

campo_key =  campo clave del papa

campo_key_ii = campo_clave del hijo

campo_todo_hijo = aqui formateo la informacion que va a entrar de los detalles

 PADR(documento, 20, " ") + PADR(cte_fecemi, 12, " ") + PADR(cte_fecven, 12, " ")+ PADR(cte_codcte, 16, " ") + PADR(cte_glocte, 75, " ")+ tmo_codtmo + STR(cte_impcte, 12,2 ) + STR(saldo, 12,2 )

 

campo_todo_papa = aqui formateo la informacion que va a entrar de la cabecera

PADR(aux_codaux, 13, " ") + PADR(aux_nomaux, 100, " ") + STR(soles_cort, 12,2 ) + STR(dolares_co, 12,2)

 

espacio_relleno = 18, es para que esten parejos los datos

espacio_relleno_letra = *, con que valor los relleno

letra = Courier New, el tipo de letra para que salgan parejitos

tabla_hijo = TOTAL, de donde extrae los datos de detalle

tabla_papa = RESUMEN, donde estan los datos unicos

 

Los botones superiores son para expandir y regresar a su anterior estado.

 

demas esta decir :

 

Se necesitan 2 tablas o cursores

Los campos claves deben de ser caracteres

 

MK

 

 

De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Ing.Daniel Bojorge


Enviado el: miércoles, 12 de enero de 2011 06:12 p.m.
Para: publice...@googlegroups.com

treeview MK.rar

Enrique Martinez

unread,
Jan 13, 2011, 11:55:16 PM1/13/11
to publice...@googlegroups.com
Muchas gracias por su ayuda, con sus comentarios, me dieron una idea de como hacerlo, ya lo hice y funcionó perfecto, aqui les dejo lo que hice, ya que identifiqué que el codigo de la bascula simpre empieza con '1'.
 

IF SUBSTR

(this.Value,1,1) = '1'

vcveart =

SUBSTR(this.Value,2,6)

vpesoent =

VAL(SUBSTR(this.Value,8,2))

vpesodec =

VAL(SUBSTR(this.Value,10,3))/1000

vpeso = vpesoent + vpesodec

ELSE

vcveart = this.Value

ENDIF

vcveart =

SUBSTR(ALLTRIM(vcveart),1,15)

SET EXACT ON

SELECT

articulos

SET ORDER TO

clave

SEEK

vcveart

IF EOF

()

WAIT window'no se encontró este codigo'

ELSE

vdescart = (catalart.descrip)

vprecio = (catalart.precpub1)

thisform.txtcveart.value = vcveart

thisform.txtdescart.Value = vdescart

thisform.txtpeso.Value = vpeso

thisform.txtprecio.Value = vprecio

thisform.Refresh

endif

 

thisform

.Refresh
Saludos y muchas gracias por su ayuda
 
Enrique Martinez

El 12 de enero de 2011 10:55, Fcocibaeno <fcoci...@gmail.com> escribió:
_codigo=SUBSTR(thisform.text1.value,3,6)
_peso=SUBSTR(thisform.text1.value,10,5)

!! suerte !!

Enrique Martinez

unread,
Jan 13, 2011, 11:57:34 PM1/13/11
to publice...@googlegroups.com
Perdon por copiarlo y pegarlo pero lo vuelvo a enviar

IF SUBSTR(this.Value,1,1) = '1'


thisform.Refresh

Saludos

Enrique Martinez

Reply all
Reply to author
Forward
0 new messages