Página 1 de 1

Validar GET para que tenha N posições

Enviado: 10 Abr 2005 08:27
por janio
Olá a todos,

Como faço para validar um GET para que tenha um determinado número de posições?

É que estou tentando fazer o seguinte:

Na digitação dos produtos na venda, no campo código do produto, quero que:
1-) Se FOR digitado as 13 posições da variável (vCODBAR=SPACE(13)), tem que buscar o produto pelo índice do Código de Barras.

2-) Se NÃO for digitado as 13 posições da variável, buscar produto pelo índice do código que damos aos produtos.

Já tentei algo do tipo, mas sem sucesso..

Código: Selecionar todos

   IF vCODBAR <> SPACE(13)
       SELECT PRODUTO
       DBSETORDER(1)
       GOTO TOP
       DBSEEK(VAL(vCODBAR))

             IF !FOUND()
                LOOP
             ENDIF 
    ELSE
        SELECT PRODUTO
        DBSETORDER(4)
        GOTO TOP
        DBSEEK(vCODBAR)
      
             IF !FOUND()
                LOOP
             ENDIF
    ENDIF

Um Abraço,

Janio

Enviado: 10 Abr 2005 10:46
por Daniel
Use deste jeito

Código: Selecionar todos

   IF Len(AllTrim(vCODBAR)) == 13  //codigo de barra
       SELECT PRODUTO 
       DBSETORDER(1) 
       GOTO TOP 
       DBSEEK(VAL(vCODBAR)) 

             IF !FOUND() 
                LOOP 
             ENDIF 
    ELSEIf  Len(AllTrim(vCODBAR)) == 6  //codigo de balcão
        SELECT PRODUTO 
        DBSETORDER(2) 
        GOTO TOP 
        DBSEEK(vCODBAR) 

             IF !FOUND() 
                LOOP 
             ENDIF 
     ELSE   //outro tipo de codigo
        SELECT PRODUTO 
        DBSETORDER(4) 
        GOTO TOP 
        DBSEEK(vCODBAR) 

             IF !FOUND() 
                LOOP 
             ENDIF 
    ENDIF 


Enviado: 10 Abr 2005 10:57
por Dudu_XBase
Jânio Bom Dia!
Montei um código abaixo para vc realizar seus testes.
Segui os seguintes critérios baseado no seu código postado:
- campo CODIGO DE BARRAS númerico
- campo CODIGO DO PRODUTO caracter
- indice pelo CODIGO DE BARRAS posição 4
- indice pelo CODIGO DO PRODUTO posição 1

Código: Selecionar todos

  cVar := space(13)
  @ 10,10 say "Codigo..:" get cVar valid(procura(cVar))
  read


  // Função para validar o get
  Static Function Procura(var)
  Local lok := .t. 
  Local cPesq := alltrim(var)

  
  if len(cPesq)=13 // procura por código de barras
    produto->(dbsetorder(4))
    lOK := produto->(dbseek(val(cPesq)))
  else  // procura por código
    produto->(dbsetorder(1)
    lOK := produto->(dbseek(cPesq))
  endif

  if !lok
     ? "Codigo "+cPesq+" nao cadastrado !!"
  endif
  
  Return lok
 

Enviado: 10 Abr 2005 11:28
por janio
Bom dia a todos, :))

Obrigado por responderem :*

Vou testar e posto os resultados...

Jânio

Enviado: 10 Abr 2005 12:24
por janio
Valeu Dudu e Daniel!

Funcionou perfeitamente!!!!!!!!

Janio