Foi questão de faltar fechar parêntesis e faltar ponto e vírgula pra continuação.
O curioso foi acusar erro em codeblock sem ter codeblock.... rs
As três juntas, passando na compilação, liquedição e execução.
Sem a getsys alterada, é provável que o campo dData não seja atualizado na tela, apesar de ter seu conteúdo atualizado.
(algo como oGet:Display() na getsys).
No teste nem vai dar pra perceber, porque a data é o último campo, e a atualização não faz falta.
Código: Selecionar todos
#include "inkey.ch"
PROCEDURE Main
ReadExit( .T. )
DO Teste1
DO Teste2
DO Teste3
RETURN
PROCEDURE Teste1
LOCAL cConvenio := " ", dData := Date(), GetList := {}
cConvenio:=" "
dData :=CTOD("06/01/2016")
@ 10,00 SAY "Convenio:" GET cConvenio PICTURE "!" VALID cConvenio $ "SN" COLOR "GR+/B,B/W*"
@ 11,00 SAY "Data :" GET dData PICTURE "@D" ;
WHEN ReturnValue( .T., dData := iif(cConvenio = "N", Ctod(""), dData ) ) .AND. cConvenio == "S" ;
VALID LastKey() == K_UP .OR. .NOT. Empty( dData )
READ
RETURN
PROCEDURE Teste2
LOCAL cConvenio := " ", dData := Date(), GetList := {}
cConvenio:=" "
dData :=CTOD("06/01/2016")
@ 10,00 SAY "Convenio:" GET cConvenio PICTURE "!" COLOR "GR+/B,B/W*" ;
VALID ReturnValue( cConvenio $ "SN" , dData := iif( cConvenio == "N", Ctod( "" ), dData ) )
@ 11,00 SAY "Data :" GET dData PICTURE "@D" WHEN cConvenio == "S" ;
VALID LastKey() == K_UP .OR. .NOT. Empty( dData )
READ
RETURN
PROCEDURE Teste3
LOCAL cConvenio := " ", dData := Date(), GetList := {}
@ 10,00 SAY "Convenio:" GET cConvenio PICTURE "!" COLOR "GR+/B,B/W*" VALID ConvenioValid( cConvenio, @dData )
@ 11,00 SAY "Data :" GET dData PICTURE "@D" WHEN cConvenio == "S" VALID LastKey() == K_UP .OR. .NOT. Empty( dData )
READ
RETURN
STATIC FUNCTION ConvenioValid( cConvenio, dData )
IF cConvenio == "N"
dData := Ctod("")
ENDIF
RETURN cConvenio $ "SN"
FUNCTION ReturnValue( xValue, ... )
RETURN xValue