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.
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.
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.
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.