Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Problemas con codigo de barras (https://www.clubdelphi.com/foros/showthread.php?t=79093)

jfrancho 07-06-2012 01:25:46

Problemas con codigo de barras
 
Buenas noches, estoy generando códigos de barras tipo ean13 para un sistema de control de stock y resulta que la mayoría de los códigos generados tienen esta extensión 0000000004646, comienzan con ceros, al momento de realizar una búsqueda para identificar el producto el lector de códigos de barras me toma un dígito menos, el primer cero es como que no lo identifica; el lector es un metrologic voyager ms9520.desde ay agradezco sus respuestas.Saludos.-

Casimiro Notevi 07-06-2012 09:24:52

Cita:

Empezado por jfrancho (Mensaje 434495)
el primer cero es como que no lo identifica

Realmente no es que el primer dígito no lo identifique, es que el último dígito es un "checksum" del resto de dígitos y no le "cuadra", así que tienes dos opciones, desactivar el "chequeo" o poner un código "correcto".

newtron 07-06-2012 09:29:09

El problema es que la mayoría de los lectores están configurados para que si el primer carácter es un cero lo ignoren, entonces hay dos opciones:

1-Configurar el lector para que no ignore si comienza por cero.
2-No usar el cero como inicio del código de barras.

Saludos

jfrancho 07-06-2012 20:55:33

Muchas gracias por las respuestas voy a probar de habilitar el dígito cero y luego les comento, saludos.-:D

newtron 08-06-2012 09:24:26

Cita:

Empezado por jfrancho (Mensaje 434592)
Muchas gracias por las respuestas voy a probar de habilitar el dígito cero y luego les comento, saludos.-:D

Como quieras, yo particularmente optaría por empezar los códigos de barras por un "1" por ejemplo y así no tienes que andar configurando cada lector que quieras usar.

saludos

jfrancho 11-06-2012 05:47:32

como no he podido configurar el lector de códigos de barras para que lea ceros, lo he resuelto al problema de la siguiente forma:
le digo al edit que si los caracteres ingresados son iguales a 12, me agregue un carácter más, en mi caso un cero.
y este es el código:

Código Delphi [-]
var
    cant  : integer;
    cadena : string;
if (length(ecodi1.Text)=12) then
     begin
          Cadena:=' ';
          cant:=13-length(inttostr(strtoint(ecodi1.text)));
          for  x:=1 to  cant do
           cadena:=cadena+ '0';
           cadena:=cadena+inttostr(strtoint(ecodi1.text));
     end

funciona bien, si alguien tiene una solución mejor bienvenida sea, saludos y gracias por las respuestas.-

newtron 11-06-2012 09:49:41

Bueno... la verdad es que si le vas a dar esa solución no tiene mucho sentido escribir tanto código. Podrías simplificar con esto....

Código Delphi [-]
if length(ecodi1.Text)=12 then 
  ecodi1.Text:='0'+ecodi1.Text;

jfrancho 11-06-2012 14:25:22

Muchas Gracias Newtron, lo probé y funciona correctamente.
Saludos.-


La franja horaria es GMT +2. Ahora son las 16:11:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi