UPC CE0205

Discussão em 'Progress 4GL' iniciado por lamorim, Janeiro 13, 2015.

  1. lamorim

    lamorim Sem Pontuação

    Bom dia!
    Estou desenvolvendo uma UPC para o programa CE0205 de forma a sugerir o número do documento através de uma sequence, quando a tela dá refresh, o novo valor imputado é desconsiderado, mostrando o valor anterior.
    Alguém saberia como fazer para após o "refresh da tela" ele pegar o novo valor?

    Segue abaixo a UPC que estou desenvolvendo:

    IF STRING(p-ind-event) = "ADD" AND
    p-ind-object = "VIEWER" THEN
    DO:
    IF VALID-HANDLE(h-cod-estabel) THEN
    DO:
    IF VALID-HANDLE(h-nro-docto) THEN
    DO:


    ASSIGN h-nro-docto:screen-value = "".

    assign c-seq = string(next-value(seq-req-mat), "9999999").


    ASSIGN h-nro-docto:screen-value = c-seq
    h-nro-docto:SENSITIVE = FALSE.

    END.
    END.
    END.

    IF STRING(p-ind-event) = "VALIDATE" AND
    p-ind-object = "VIEWER" THEN
    DO:
    IF VALID-HANDLE(h-cod-estabel) THEN
    DO:
    IF VALID-HANDLE(h-nro-docto) THEN
    DO:

    ASSIGN h-nro-docto:screen-value = "".

    assign c-seq = string(next-value(seq-req-mat), "9999999").

    ASSIGN h-nro-docto:screen-value = c-seq
    h-nro-docto:SENSITIVE = FALSE.

    END.
    END.
    END.
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Procura outro ponto, acontece muita coisa depois do ADD, pega o before-display ou after-display pra gerar o seu codigo, tipo, pega o ultimo ponto antes habilitar os campos,
    é que tem um comando que limpa todos os campos na tela antes de fazer o enable, olha, quem sabe até vc cria um evento on 'entry' no campo e nesse evento vc gera o numero, assim vc tem certeza de que será o ultimo comando antes de vc digitar alguma coisa na tela.
  3. lamorim

    lamorim Sem Pontuação

    Então,
    já coloquei nesses eventos todos aí, só não fiz o teste no Entry.
    Você teria um exemplo para eu seguir, tendo em vista que não tenho esse evento "aberto" para eu trabalhar.
  4. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    essa função getHandle faz todo aquele esquema pra achar um campo na frame ....
    Dai no meu caso, estou só chamando outro programa, mas vc pode chamar um programa passando como parametro o handle do campo e lá vc faz o que precisa.

    Código:
        if not valid-handle(itCodigo) then do:
            assign itCodigo = getHandle('it-codigo','fill-in', p-wgh-frame).
            if valid-handle(itCodigo) then do:
                on 'entry' of itCodigo persistent run upc/upc-ce0205aEvt.p.
            end.
        end.
    
  5. lamorim

    lamorim Sem Pontuação

    Obrigada!
    Testei e funcionou!
    Última edição: Janeiro 13, 2015

Compartilhe esta Página