Um Feliz Natal para todos!
Sei que hoje é época de festas mas preciso de uma ajuda, caso seja possÃvel.
1 - Preciso obter o nome do primeiro get de meu formulário
2 - Quando o usuário clica em um PushButton nesse formulário, é executada uma função que verifica se o usuário preencheu todas as variáveis. Se não, estabelece o foco com ":setfocus()" para o get cujo nome foi obtido anteriormente.
Como faço isso?
Eis meu código:
FUNCTION MAIN()
//CORES DOS BOTOES
//01 BOTAO SEM FOCO
//02 BOTAO COM FOCO
//03 BOTAO COM FOCO E PRESSIONADO
//04 TECLA DE ATALHO DO BOTAO
LOCAL cCORBOTOES := "W+/B,W+/R,W+/BG,W+/GR+"
PUBLIC cEMPRESA := SPACE(20)
PUBLIC cUSUARIO := SPACE(20)
PUBLIC cSENHA := SPACE(20)
PUBLIC bENTRAR := .T.
PUBLIC bSAIR := .T.
PUBLIC lACESSAR := .F.
DO WHILE .T.
SETCOLOR(N/W,W+/BG)
@ 10,22 CLEAR TO 16,58
@ 10,22 TO 16,58
SET CURSOR ON
@ 11,24 SAY "EMPRESA...:" GET cEMPRESA PICTURE "@!" SEND COLORSPEC := "W+/GR+,W+/BG"
oGETPRI := ALLTRIM(STR(GETACTIVE():NAME))
@ 12,24 SAY "USUARIO...:" GET cUSUARIO PICTURE "@!" SEND COLORSPEC := "W+/GR+,W+/BG"
@ 13,24 SAY "SENHA.....:" GET cSENHA PICTURE "@!" SEND COLORSPEC := "W+/GR+,BG/BG"
@ 15,34 GET bENTRAR PUSHBUTTON CAPTION "ENTRAR" COLOR cCORBOTOES STYLE "[]" STATE {||ACESSOBOTOES('ENTRAR')}
@ 15,48 GET bSAIR PUSHBUTTON CAPTION "SAIR" COLOR cCORBOTOES STYLE "[]" STATE {||ACESSOBOTOES('SAIR')}
READ
IF LASTKEY() = 27
EXIT
ENDIF
IF lACESSAR == .T.
//CHAMA MENU PRINCIPAL
//CARDAPIO()
lACESSAR = .F.
EXIT
ELSEIF lACESSAR == .F.
EXIT
ENDIF
ENDDO
SET CURSOR OFF
RETURN(NIL)
FUNCTION ACESSOBOTOES(cACAO)
DO CASE
CASE UPPER(ALLTRIM(cACAO)) == "ENTRAR"
lACESSAR = .T.
cEMPRESA = UPPER(ALLTRIM(cEMPRESA)) + SPACE(20 - LEN(ALLTRIM(cEMPRESA)))
cUSUARIO = UPPER(ALLTRIM(cUSUARIO)) + SPACE(20 - LEN(ALLTRIM(cUSUARIO)))
cSENHA = UPPER(ALLTRIM(cSENHA)) + SPACE(20 - LEN(ALLTRIM(cSENHA)))
IF (LEN(ALLTRIM(cEMPRESA)) > 0) .AND. (LEN(ALLTRIM(cUSUARIO)) > 0) .AND. (LEN(ALLTRIM(cSENHA)) > 0)
lACESSAR = .T.
ELSE
ALERT("PREENCHA OS CAMPOS EMPRESA, USUARIO E SENHA PARA OBTER ACESSO AO SISTEMA!",{"OK"},"W+/B")
//ESTABELECE FOCO NO GET cEMPRESA
lACESSAR = .F.
ENDIF
CASE UPPER(ALLTRIM(cACAO)) == "SAIR"
lACESSAR = .F.
ENDCASE
RETURN(lACESSAR)