1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

Validar String

Discussão em 'Progress 4GL' iniciado por adventistapr, Fevereiro 10, 2012.

  1. adventistapr

    adventistapr Sem Pontuação

    Olá pessoal do fórum, estou começando a programar agora e preciso de uma ajuda.

    Ao cadastrar um produto preciso validar a safra do mesmo, por exemplo:

    A safra é char x(12)

    se o produto for 5002 a safra precisa ser XXXXX
    se o produto for 5009 a safra precisa ser XXXX-XXXX

    Como consigo fazer essa validação?
    Obrigado e fiquem na paz.
  2. eriutoncharles

    eriutoncharles Membro Participativo

    Paz meu Caro !!

    Será que seria isto?

    Código:
       
    DEF VAR vCod_Prod AS INT NO-UNDO.
    DEF VAR vSafra    AS CHAR NO-UNDO.
    
    DEF TEMP-TABLE tt-Safra NO-UNDO  
       FIELD Safra AS CHAR .
    
       
       CREATE tt-Safra.
       ASSIGN tt-Safra.Safra = "12345".
       
       CREATE tt-Safra.
       ASSIGN tt-Safra.Safra = "1234-5678".
       
    
    UPDATE vCod_Prod vSafra
         VALIDATE ( CAN-FIND ( FIRST tt-Safra WHERE tt-Safra.Safra = INPUT vSafra), 
                    "ENTRE COM UMA SAFRA VÁLIDA").
    
       
       
       
    
    Onde vc poderia ter uma Tabela com várias safras, e validar se o usuário digitou uma safra válida?
  3. eriutoncharles

    eriutoncharles Membro Participativo

    Ou Seria isto?

    Veja ai se lhe ajuda.

    Código:
    DEF VAR vCod_Prod AS INT NO-UNDO.
    DEF VAR vSafra    AS CHAR FORM "X(20)" NO-UNDO.
    
    FORM vCod_Prod vSafra.
    
    UPDATE vCod_Prod.
    
    IF vCod_Prod = 5002  THEN ASSIGN vSafra:FORMAT = "XXXXX".
    ELSE 
    IF vCod_Prod = 5009  THEN ASSIGN vSafra:FORMAT = "XXXXX-XXXXX".
    
    UPDATE vSafra .
    
       MESSAGE vSafra:FORMAT VIEW-AS ALERT-BOX.
       
  4. adventistapr

    adventistapr Sem Pontuação

    Olá irmão, a paz.

    Obrigado por já ter respondido a minha dúvida.
    A validação que estou tentando fazer está em um método de gravação e ele está assim:


    IF (INT({&TABELA-TMP}.IdProduto / 10000) = 5002) AND LENGTH({&TABELA-TMP}.IdSafra) < 4 OR LENGTH({&TABELA-TMP}.IdSafra) > 4 THEN DO:
    lcErro = "Atenção, safra inválida para esse produto, o formato de ver ser XXXX, por favor verifique. [MetodoCr]".
    {aborta 060019 lcErro}
    END.

    Abusando um pouco da sua bondade, como conseguiria validar a safra de acordo com o produto informado?
    Valeu e fique na paz.

Compartilhe esta Página