Se alguem puder me ajudar, eu nunca consegui resolver esse problema
ja verifiqueis os valid ja inserir cancel nos botões de saida,mas de nada adiantou
//----------------------------------------------------------------------------//
METHOD BuildMoreButtons() CLASS CadFuncionarios
LOCAL i,x,y,spc,coluna:=1
x := ::xBrw:nTop + ::xBrw:nHeight + 20
y := ::xBrw:nLeft + 10
spc := ((::xBrw:nWidth - 10)/::nColunas)
// espaçamento mÃnimo é 84
DO WHILE (spc < 84)
::nColunas-=1
spc := ((::xBrw:nWidth - 10)/::nColunas)
ENDDO
FOR i:=1 TO 4
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
NEXT
@ x, y BUTTON ::aBotoes[5] PROMPT "&Rescisão" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION ::Rescisao()
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[6] PROMPT "&Ferias" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION CadFuncFerias():New(::oChild)
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[7] PROMPT "Fi&cha" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION IF ( MsgSimNao("Imprime a Ficha?", " Confirmação"), RelFichaFuncionario():New(), )
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[8] PROMPT "Afas&tamento" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION CadFuncAfast():New(::oChild)
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[9] PROMPT "&Modalidade" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION ::Modalidade()
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[10] PROMPT "&Outros VÃnculos" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION ::OUTVINC()
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[11] PROMPT "&Visualizar Ativos" OF ::oChild SIZE 90,22 PIXEL ACTION ::filtrar()
y+=spc+15
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
::xBrw:SetFocus()
return
//-------------------------------------------------------------------------------------------------
METHOD Rescisao() CLASS CadFuncionarios
local resDlg, btok, aCodSaq, gRESVERBAdesc1, cRESVERBAdesc1, gRESVERBAdesc2,;
cRESVERBAdesc2, gRESVERBAdesc3, cRESVERBAdesc3
::bancos:Abrir(14)
::InicializaRescisao()
DEFINE DIALOG resDlg RESOURCE "#1035" OF ::oChild TITLE "Rescisão"
REDEFINE SAY ID 4007 OF resDlg
REDEFINE SAY ID 4004 OF resDlg
REDEFINE SAY ID 4006 OF resDlg
REDEFINE SAY ID 4010 OF resDlg
REDEFINE SAY ID 4012 OF resDlg
REDEFINE SAY ID 4014 OF resDlg
REDEFINE SAY ID 4016 OF resDlg
REDEFINE SAY ID 4027 OF resDlg
REDEFINE GET ::gDEMISSAO VAR ::cDEMISSAO ID 4008 OF resDlg;
VALID EMPTY(::cDEMISSAO) .OR. ::cDEMISSAO>=::cADMISSAO
REDEFINE GET ::gRESVERBA VAR ::cRESVERBA ID 4003 OF resDlg;
pict "999999" VALID grupok("1", ::cRESVERBA, @cRESVERBAdesc1, @gRESVERBAdesc1)
REDEFINE BUTTONBMP ::bGetVerba ID 4019 OF resDlg BITMAP "#7002";
ACTION (JSFltpr():New(resDlg,::gRESVERBA), IF(::gRESVERBA:lValid(), ::gRESCODSAC:setFocus(), ::gRESVERBA:setFocus()))
REDEFINE SAY gRESVERBAdesc1 VAR cRESVERBAdesc1 ID 4002 OF resDlg
grupok("1", ::cRESVERBA, @cRESVERBAdesc1, @gRESVERBAdesc1)
REDEFINE GET ::gCODMOV VAR ::cCODMOV ID 4005 OF resDlg;
VALID ::checkCODMOV()
REDEFINE BUTTONBMP ::bGetCODMOV ID 4020 OF resDlg BITMAP "#7002";
ACTION (JSFltbmv():New(resDlg, "Movimento SEFIP", ::gCODMOV), IF(::gCODMOV:lValid(), ::gRSCDESL:setFocus(), ::gCODMOV:setFocus()))
REDEFINE SAY ::gDescCODMOV VAR ::cDescCODMOV ID 4024 OF resDlg
RSCDESLArray = RSCDESLGetArray()
REDEFINE GET ::gRSCDESL VAR ::cRSCDESL ID 4009 OF resDlg;
PICT "99" VALID ::chkRSCDESL()
REDEFINE BUTTONBMP ::bGetRSCDESL ID 4021 OF resDlg BITMAP "#7002";
ACTION (JanSeletor():New(resDlg, ::gRSCDESL, 760, 300, "Informações do Desligamento", RSCDESLArray), if(::gRSCDESL:lValid(),;
::gcoddemcag:SetFocus(),::gRSCDESL:SetFocus()) )
REDEFINE SAY ::gDescRSCDESL VAR ::cDescRSCDESL ID 4025 OF resDlg
REDEFINE GET ::gcoddemcag VAR ::ccoddemcag ID 4011 OF resDlg;
PICT "99" VALID ( ::checkCoddemcag() .and. ::DtCagedDem() )
REDEFINE BUTTONBMP ::bGetCAGED ID 4022 OF resDlg BITMAP "#7002";
ACTION ( demiscagok(@resDlg, @::gcoddemcag), if(::gcoddemcag:lValid(),;
::grepoevaga:SetFocus(),::gcoddemcag:SetFocus()) )
REDEFINE SAY ::gdesccoddemcag VAR ::cdesccoddemcag ID 4026 OF resDlg
REDEFINE GET ::gRESCODSAC VAR ::cRESCODSAC ID 4013 OF resDlg;
PICT "99" VALID ::ChkCodSaq()
aCodSaq:= {"01 - Dispensa sem justa causa",;
"02 - Dispensa com culpa recÃproca ou força maior",;
"03 - Extinção da empresa",;
"04 - Extinção do contrato de trabalho p/prazo determinado",;
"05 - Aposentadoria",;
"06 - Suspensão do trabalho avulso por perÃodo igual ou superior a 90 dias",;
"07 - Afastamento de trabalhador avulso portuário",;
"10 - Rescisão com indenização (não optante)",;
"23 - Falecimento do titular da conta",;
"26 - Rescisão s/ pgto. de indenização ou fim de prazo prescricional (Reclamação trabalhista)",;
"27 - Pagamento do depósito de que trata o art. 73 do regulamento do FGTS",;
"50 - Complemento de atualização monetária inferior a R$100,00",;
"70 - Idade igual ou superior a setenta anos",;
"80 - Portador de SIDA/AIDS",;
"81 - Neoplasia Maligna",;
"86 - Sem crédito de depósito por 3 anos, com afastamento a partir de 14/07/90",;
"87 - Sem crédito de depósito por 3 anos, com afastamento até 13/07/90",;
"88 - Determinação judicial"}
REDEFINE BUTTONBMP bCodsaq ID 4001 OF resDlg BITMAP "#7002" ;
ACTION (JanSeletor():New(resDlg,::gRESCODSAC,590, 350,"Saques FGTS",aCodSaq), IF(::gRESCODSAC:lValid(), ::gCODMOV:setFocus(), ::gRESCODSAC:setFocus()))
REDEFINE SAY ::gDescRESCODSAC VAR ::cDescRESCODSAC ID 4023 OF resDlg
REDEFINE GET ::gMULTAFGTS VAR ::cMULTAFGTS ID 4015 OF resDlg;
PICT "@EZ 99,999.99" VALID ::cMULTAFGTS>=0
REDEFINE GET ::gDtCagedD VAR ::cDtCagedD ID 4028 OF resDlg pict "99/99/9999" when(::ccoddemcag = "80") valid(::DtCagedDem()) //Data Caged Demissao
REDEFINE CHECKBOX ::grepoevaga VAR ::crepoevaga ID 4017 OF resDlg
REDEFINE BUTTON btok ID IDOK OF resDlg ACTION ::SalvarRescisao(resDlg) WHEN(::ValidCagedDem())
REDEFINE BUTTON ID 4018 OF resDlg ACTION ::RestauraRescisao()
REDEFINE BUTTON ID IDCANCEL ACTION ::oDlg:End() CANCEL
::gCODMOV:lValid()
::gRSCDESL:lValid()
::gcoddemcag:lValid()
::gRESCODSAC:lValid()
::DtCagedDem()
resDlg:bLostFocus := {|| ::bancos:Fechar(14)}
ACTIVATE DIALOG resDlg CENTERED
return
Obs: não coloquei as chamadas de CadFuncFerias ou CadFuncAfast pq é chamada a outras classes,mas ja analisei e todos os botões de saida esta com o CANCEL