Boa noite! Já tentei de tudo: RETURN ERROR; RETURN NO-APPLY; APPLY "ENTRY" TO... como o exemplo abaixo... Não consigo cancelar o LEAVE e obrigar que permaneça no FILL-IN, impedindo qlqr outra ação. Desde já, agradeço o socorro!!! IF wgh-meu-campo:SCREEN-VALUE = "" THEN DO: MESSAGE "Obrigatório informar MEU CAMPO!" VIEW-AS ALERT-BOX. //APPLY "ENTRY" TO wgh-meu-campo. //RETURN. //RETURN NO-APPLY. RETURN ERROR. END.
Pode ser que sua UPC esteja sendo chamada depois que a informação já tenha sido salva. Há um modo de gerar log do programa que está em execução, ai da para ver em que momento a gravação é feita. ASSIGN LOG-MANAGER:LOGFILE-NAME = "c:\temp\___LOG_Exec_PRG___.txt" LOG-MANAGER:LOG-ENTRY-TYPES = "4GLMessages,4GLTrace,4GLTrans,QryInfo,DB.*,DS.*,DynObjects.*,FileID,IgnoredOps,ProEvents.*,SAX" LOG-MANAGER:LOGGING-LEVEL = 4 /* 4 (Extended) */. LOG-MANAGER:CLEAR-LOG(). /*--- Seu programa aqui ---*/ run prghur/fpp/fp9999.w. /*--- Termina com PONTO ---*/ LOG-MANAGER:CLOSE-LOG().