Na tela inicial de um sistema que estou desenvolvendo, o usuário deve dizer ao programa onde estão as bases de dados (.dbf) que serão usadas para o processamento, informando isso num GET. Caso o usuário altere dado, ele deve ser registrado num arquivo .ini a ser guardado no diretório do programa e lido quando o programa for reiniciado, de forma que o usuário não tenha de digitá-lo novamente.
Alguém sabe como fazer isso?
Código: Selecionar todos
SELECT 1
IF .NOT. ABRE("EMPRESAS.DBF", 5,"C")
ALERTA("'EMPRESAS.DBF' INDISPONIVEL NO MOMENTO!",{"OK"},"W+/B")
SET CURSOR ON
SET COLOR TO
CLEAR SCREEN
RETURN
END IF
SET INDEX TO EMPR0001.CDX, EMPR0002.CDX
PUBLIC cHOJE := DTOC(DATE())
PUBLIC cUSUARIO := SPACE(08)
PUBLIC cEMPRESA := SPACE(10)
PUBLIC cDIRETORIO := IIF(LEN("C:\" + ALLTRIM(CURDIR("C")) + "\") < 40, "C:\" + ALLTRIM(CURDIR("C")) + "\" + SPACE(40 - LEN("C:\" + ALLTRIM(CURDIR("C")) + "\")), LEFT("C:\" + ALLTRIM(CURDIR("C")) + "\",40))
PUBLIC cEMPRRAZAO := SPACE(50)
PUBLIC cEMPREND := SPACE(50)
PUBLIC cEMPRBAI := SPACE(40)
PUBLIC cEMPRCEP := SPACE(10)
PUBLIC cEMPRCID := SPACE(50)
PUBLIC cEMPRUF := SPACE(02)
PUBLIC cEMPRTEL := SPACE(50)
PUBLIC cEMPRFAX := SPACE(50)
PUBLIC cEMPREMA := SPACE(50)
DO WHILE .T.
SET COLOR TO W+/W
@ 00,00 CLEAR TO 23,79
SET COLOR TO W+/N
@ 24,00 CLEAR TO 24,79
@ 24,00 SAY "<ESC>SAIR"
SET COLOR TO W+/B
@ 00,00 CLEAR TO 00,79
@ 00,00 SAY "GERAD - SISTEMA DE GERENCIAMENTO ADMINISTRATIVO"
SET COLOR TO W+/B,W+/B
@ 08,28 CLEAR TO 12,49
@ 08,28 TO 12,49
@ 08,36 SAY "ACESSO"
DBGSHADOW(08,28,12,49)
@ 16,19 CLEAR TO 18,60
@ 16,19 TO 18,60
@ 16,29 SAY "DIRETORIO DE TRABALHO"
DBGSHADOW(16,19,18,60)
SET CURSOR ON
@ 09,29 SAY "DATA...: "
@ 10,29 SAY "USUARIO: "
@ 11,29 SAY "EMPRESA: "
@ 09,38 GET cHOJE PICTURE "99/99/9999" VALID(VALIDATA(cHOJE) = .T.) SEND COLORSPEC := "W+/B,W+/N"
@ 10,38 GET cUSUARIO PICTURE "@!" SEND COLORSPEC := "W+/B,W+/N"
@ 11,38 GET cEMPRESA PICTURE "@!" SEND COLORSPEC := "W+/B,W+/N"
@ 17,20 GET cDIRETORIO PICTURE "@!" SEND COLORSPEC := "W+/B,W+/N"
READ
IF LASTKEY() = 27
EXIT
ENDIF
IF (LEN(ALLTRIM(cUSUARIO)) > 0) .AND. (LEN(ALLTRIM(cEMPRESA)) > 0)
SELECT 1
SET ORDER TO 1
IF RECCOUNT() > 0
IF DBSEEK(cEMPRESA) = .T.
cEMPRRAZAO := RAZAO
cEMPREND := ENDERECO
cEMPRBAI := BAIRRO
cEMPRCEP := CEP
cEMPRCID := CIDADE
cEMPRUF := UF
cEMPRTEL := TEL
cEMPRFAX := FAX
cEMPREMA := EMAIL
SET CURSOR OFF
DO MENU
EXIT
ELSE
ALERTA("EMPRESA NAO ENCONTRADA!",{"OK"},"W+/B")
LOOP
ENDIF
ELSE
DO EMPRESAS
DO MENU
EXIT
END IF
ELSE
ALERTA("PREENCHA OS CAMPOS USUARIO E EMPRESA PARA OBTER ACESSO AO SISTEMA!",{"OK"},"W+/B")
LOOP
ENDIF
ENDDO
SET CURSOR OFF
SET COLOR TO
CLEAR SCREEN
RETURN
FUNCTION ABRE(cARQUIVO, nTEMPO, cMODO)
DO WHILE nTEMPO > 0
IF cMODO = "C"
USE &cARQUIVO SHARED
ELSE
USE &cARQUIVO EXCLUSIVE
ENDIF
IF NETERR()
nTEMPO = nTEMPO - 0.5
INKEY(0.5)
ELSE
RETURN(.T.)
ENDIF
ENDDO
RETURN(.F.)

