Página 1 de 1

procura de produtos na venda

Enviado: 10 Ago 2005 09:04
por matrix
pessoal tenho o campo codigo(numerico) e o campo barras(Numerico), e um terceiro campo LEITOR(numerico), entaum fiz o seguinte, quando o campo barras é preenchido este tem preferencia de gravacao no campo Leitor, caso esteja em branco é gravado o codigo..........assim crio indice e é nele que procuro o produto na venda, ou seja busco no campo leitor que está gravado codigo ou barras, como farei pra buscar pelas duas opçoes, tipo assim posso digitar o codigo ou passar o leitor que virá o mesmo produto......
agradeço.

Enviado: 10 Ago 2005 10:09
por Alessandro
Caro colega, Matriz

Se bem entendi o que quis dizer, é dessa forma,

Vc tem dois campos, CODIGO e COD.BARRA, exato?

Onde CODIGO é o preferencial, pois vem, quando vc passa o leitor, verifique se a entrada se encontra no CODIGO, senão, verifique no código de barras.

Espero que tenha ajudado

Enviado: 10 Ago 2005 11:06
por matrix
tem um terceiro campo que é o campo LEITOR, o que prevalece no campo LEITOR é o campo CODIGO, mas se existir dados no campo BARRAS, aproveita-se os dados do campo BARRAS..............

dessa forma de busca naum fica muito lento o processo????

Enviado: 10 Ago 2005 18:45
por janio
Olá Matrix,

Não sei se entendi direito, mas se for o que estou pensando, veja:

Eu utilizo dessa forma e tem funcionado!

No cadastro dos produtos, tenho o CODIGO do produto (numerico,4) gerado pelo sistema, como o CODIGO DE BARRAS (Caractere,13) de cada produto.

O que acontece: No momento da venda, tenho um GET com 13 opcoes para a digitação do produto. Se o CODIGO DIGITADO for 08 ou 13 posições (a maioria dos codigos de barras sao 08 ou 13 posições) busco no DBF o produto pelo indice do codigo de barras. Se o CODIGO DIGITADO for DIFERENTE de 08 ou 13 posições, aí busco pelo codigo do produto gerado pelo sistema. Assim, o usuário tanto pode digitar o codigo de barras do produto, como o codigo que o sistema gerou para cada produto.

Veja:

Código: Selecionar todos

   While .T.

       sCorpo:=SaveScreen(07,00,24,79)

       vCODBAR = SPACE(13)
       vQTDPRD = 1
       vVLRUNI = 0

       SET CONFIRM ON
       @ 05,02 GET vCODBAR Pict "9999999999999"
       READ
           
           IF LASTKEY() = 27
              LOOP
           ENDIF
 
           If LASTKEY() = 23
              IF LEN( Mproduto ) <> 0
                 FINALIZA()
                 EXIT
              ENDIF
           ENDIF

           IF Len(AllTrim(vCODBAR)) <> 13 .AND. Len(AllTrim(vCODBAR)) <> 08
              SELECT PRODUTO 
              DBSETORDER(1)  // indice do CODIGO DO PRODUTO
              GOTO TOP 
              DBSEEK(VAL(vCODBAR)) 

                 IF !FOUND() 
                    TONE(600,4)
                    TONE(610,4)
                    TONE(4000,4)
                    TONE(4009,4)
                    LOOP 
                 ENDIF 
           *******************************
           **** se for CODIGO DE BARRA ****
           *******************************
           ELSE
              SELECT PRODUTO
              DBSETORDER(4) // indice do CODIGO DE BARRAS
              GOTO TOP
              DBSEEK(vCODBAR)
       
                 IF !FOUND()
                    TONE(600,4)
                    TONE(610,4)
                    TONE(4000,4)
                    TONE(4009,4)
                    LOOP
                 ENDIF
           ENDIF
Um abraço,

Janio

Enviado: 12 Ago 2005 11:34
por matrix
naum sei se vai funcionar mas creio que sim, é isso mesmo.

valeu