Duvida Validar campo enable no browse (Parte 2 - Urgente)

Discussão em 'Progress 4GL' iniciado por jeffyssantos, Fevereiro 26, 2014.

  1. jeffyssantos

    jeffyssantos Membro Participativo

    Olá bom dia pessoal !

    Preciso de mais um help dos amigos, tenho no meu browse freeform, alguns compos que no meu "display" defini como "eneble", pois quero que o usuário entre como os dados. tudo OK !

    Só que agora, tenho que validar este campo enable de modo que ao deixá-lo "em branco" (qdo não tiver informação), eu possa chamar uma interação externa como outro programa e justificar o porquê da informação ter ficado em branco, já tentei colocar diversas validações e lógica nos campos "value-changed", "tab", "row-entry" enfim nada, ele só valida quando saio do ultima coluna, ou seja, tenho que percorrer todo o browse.

    Quem tiver alguma sugestão, agradeço !

    P.S
    A interação como outro programa, eu sei como fazê-la, minha dúvida é somente no campo do browse.

    Abraço,
    Jefferson
  2. LeandroSantos

    LeandroSantos Membro Participativo

    Já tentou "ON 'LEAVE':U tabela.campo"?
  3. jeffyssantos

    jeffyssantos Membro Participativo

    Já tentei sim e, não funcionou ele só valida, quando percorro todo o browse, não no momento em que vou p/a próximo campo.

    De qualquer forma obrigado !

    Sds,
    Jefferson
  4. LeandroSantos

    LeandroSantos Membro Participativo

    Deve ter alguma coisa errada no seu codigo, porque fiz o teste aqui e funcionou perfeitamente.

    Código:
    DEFINE QUERY q1 FOR Customer.
    DEFINE BROWSE b1 QUERY q1
      DISPLAY
          CustNum Name state enable all
          WITH 17 DOWN TITLE "Customer Browse".
    
    DEFINE FRAME f1
      b1 
      WITH SIDE-LABELS AT ROW 2 COLUMN 2.
    
    
    ON LEAVE OF customer.name
    DO:
      MESSAGE "passei" VIEW-AS ALERT-BOX.
    END.
    
    OPEN QUERY q1 FOR EACH Customer.
    ENABLE b1 WITH FRAME f1.
    
    WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW.
    Agnaldo curtiu isso.
  5. lfengel

    lfengel Sem Pontuação

    se vc estiver usando uma aplicacao desenvolvida com appbuilder - smart - coloca esta validacao no main-block , que rola !
  6. Agnaldo

    Agnaldo Membro Ativo

    O código do @LeandroSantos mostrou bem o uso.
    Caso queira validar o conteúdo, podes alterar a trigger de leave apenas.
    Algo como:
    Código:
    ON LEAVE OF customer.name
       DO:
          IF SELF:SCREEN-VALUE = ""
             THEN
                 DO:
                    MESSAGE "Nome não pode ser branco" VIEW-AS ALERT-BOX.
                    RETURN NO-APPLY.
                 END.
       END.
    

Compartilhe esta Página