Duvida Como Validar 'modificar' em browser inclui/modifica

Discussão em 'Progress 4GL' iniciado por jeffyssantos, Dezembro 3, 2014.

  1. jeffyssantos

    jeffyssantos Membro Participativo

    Boa tarde !
    Estou precisando de um help amigo !
    Bem, estou criando um daqueles telas de cadastro inclui modifica pai e Filho, templates Datasul.
    Como não fiz muitos destes ( na verdade é o meu 1º) , tenho a seguinte situação:
    ** Quando o usuário vai "incluir" no filho, eu faço algumas validações de controle, enfim tudo acontece como esperado, consigo fazer isso de boa, esta validação fica na procedure 'pi-validate' como indica o Manual de Padrões .
    ** Quando o usuário vai no "modificar" no filho, essas validações não funcionam, apresenta as mensagem de advertência tal qual a situação anterior, porém aceita a modificação, ou seja, mostra mas sai da tela, assumindo o valor digitado.
    Então o meu problema é que, preciso que o programa valide e não prossiga, até que todas as condições sejam satisfeitas quando o usuário for modificar.

    Desde já obrigado !

    Sds,
    Jefferson Santos
  2. Eilleen

    Eilleen Membro Ativo

    Boa noite!
    As validações estão idênticas? Se sim, o que identifica no programa que é uma inclusão ou edição?
    Se postar um trecho do código ajuda a gente a avaliar melhor o problema.. ;)
  3. jeffyssantos

    jeffyssantos Membro Participativo

    Oi bom dia Eilleen !
    Obrigado por sua atenção !
    Olha só na verdade não trato isso ainda, pois nas 02 situações eu preciso, que o programa faça as mesmas validações, pois passam pela mesma procedure a 'pi-validate'.
    O trecho do meu código é esse:

    DO WITH FRAME {&FRAME-NAME} ON ERROR UNDO, RETURN "ADM-ERROR":

    find first rs-numser
    where rs-numser.nr-serie = input frame {&frame-name} pk-numser-pai-filho.nr-serie-pai
    no-lock no-error.

    if avail (rs-numser) then do:
    if not can-find (first tt-estrut
    where tt-estrut.it-codigo = rs-numser.it-codigo
    and tt-estrut.nivel = 1 )
    then do:
    empty temp-table tt-estrut.
    empty temp-table tt-filhos.

    run pi-verifica-estrut (input rs-numser.it-codigo) .
    run pi-verifica-filhos.

    find first rs-numser
    where rs-numser.nr-serie = input frame {&frame-name} pk-numser-pai-filho.nr-serie-filho
    no-lock no-error.

    if avail (rs-numser) then do:

    if not can-find ( first tt-filhos
    where tt-filhos.it-codigo-filho = rs-numser.it-codigo )
    then do:

    run utp\ut-msgs.r (input "show",
    input 15825,
    input "Inconsistência encontrada!" + "~~" +
    "O item " + rs-numser.it-codigo + " não pertence a essa estrutura, por favor, verifique!").

    apply 'entry' to pk-numser-pai-filho.nr-serie-filho.
    return 'ADM-ERROR':U.
    end.

    end. /** fim avail **/

    end. /*** fim do then do ***/

    end. /*** fim do then do ***/

    run utp\ut-msgs.r (input "show",
    input 17006,
    input "Erro número de série!" + "~~" +
    "Número de série não encontrado, verique a sua digitação").
    apply 'entry' to pk-numser-pai-filho.nr-serie-filho.
    RETURN "ADM-ERROR".


    end.
    ​


    Obrigado,

    Sds,
    Jefferson Santos

    ​
  4. jeffyssantos

    jeffyssantos Membro Participativo

    Olá Eilleen !
    Resolvi o meu problema colocando as validações diretamente no 'local-assign-record' ai ficou beleza, tanto na adição quanto na manutenção do registro esta validando o programa esta validando corretamente.

    Obrigado a todos!

    Abraço,
    Jefferson Santos
    Eilleen curtiu isso.
  5. Eilleen

    Eilleen Membro Ativo

    Legal, Jefferson!
    Obrigada por compartilhar! :)

Compartilhe esta Página