Página 1 de 1

Dbedit não funciona

Enviado: 15 Fev 2007 14:10
por kirua
Ola pessoal....

Seguinte, eu to com duvidas no DBedit... quando eu chamo o camando do dbedit, o IF FOUND( ) reconhce como busca FALSE.....
o meu codigo é esse talvez vcs entenderam melhor (apenas a parte do DBEdit)

Código: Selecionar todos

GO TOP
Dbedit (08,15,12,50,.T.)
SEEK nome_v
IF FOUND( )
	Alert('Registro Encontrado')
	@ 07, 00 Clear To 18, 49                  	// Limpar determinada area
	@ 07, 00 To  18, 49 double                	// tabela com linha dupla
	@ 08, 01 To  10, 48                       	// tabela com linha unica
	@ 6, 2, 7, 3 Box []	                                               
	
	SetColor ("14/9")
	@ 09, 02 Say "Cadastro Pessoal:"             
	@ 11, 02 Say "Nome:                                         "
	@ 12, 02 Say "Rg..:              CPF.......:                "    
	@ 13, 02 Say "Data Nasc:         Local nasc:                "    
	@ 14, 02 Say "End.:                                         "    
	@ 15, 02 Say "Num.:     Cep.:              Fone:            "    
	@ 16, 02 Say "Loca:                                         "    
	@ 17, 02 Say "Cid.:                           Est.:         " 
	
	SetColor("15/9")
	@ 11, 08 Say nome  PICT'@!' 				// editar variavel nome
	@ 12, 08 Say rg    PICT "99.999.999-9"    	// editar variavel rg
	@ 12, 34 Say cpf   PICT "999.999.999-99"    // editar variavel cpf
	@ 13, 12 Say datan PICT "@D 99/99/99"     	// editar variavel data de nascimento
	@ 13, 32 Say locan 	   		         		// editar variavel Local de nascimento
	@ 14, 08 Say end  	   		          		// editar variavel Endereço
	@ 15, 08 Say num 	   			           	// editar variavel numero do endereço
	@ 15, 19 Say cep   PICT "999.99-999"      	// editar variavel cep
	@ 15, 35 Say fone  PICT "@R (99)9999-9999"	// editar variavel telefone
	@ 16, 08 Say loca                       	// editar variavel localidade
	@ 17, 08 Say cida  PICT "@!"                // editar variavel cidade
	@ 17, 39 Say esta  PICT "@!"                // editar variavel estado                                         			         

	Inkey (0)
	clear screen
	Restscreen (0,0,24,79, save_v)
Else
	Alert("Não foi encontrado nenhum registro")
    clear screen
	Restscreen (0,0,24,79, save_v)
Endif

tudo funcionava sem o DBEdit, mas quando eu quis por essa função começou a dar zica na seguinte parte;
Bbedit é acionado(até ai tudo bem) quando o clipper le a função IF FOUND( ), o proprio reconhece a pesquisa anterior (SEEK) como FALSE, e vai pra ELSE q é o

Código: Selecionar todos

Alert("Não foi encontrado nenhum registro")
e com isso não consigo visualizar o cadastro...
A pergunta é: como eu contorno isso fazer o IF FOUND() reconhecer a pesquisa anterior como true com a função DBEdit e mostrar o meu cadastro...
vlw pessoal....
qual quer duvida na minha duvida XD, perguntem por favor isso é meu urgente pra mim.....

vlw galera

Enviado: 15 Fev 2007 14:51
por acelconsultoria
E aí, blz ???



Bom, surgiu uma dúvida aqui sim... onde é que vc define o valor da variável NOME_V, que é a chave que o comando seek utiliza pra fazer a busca ???


Outra dúvida, vc está usando tudo isso numa única tabela ??? Se for isso, dispense essa lógica, pois não precisa de "IF FOUND" e nem SEEK, pois ao dar sinal de saída do DBEdit(), o ponteiro já fica automaticamente posionado no registro do banco de dados, aí é só exibir os dados na tela.

Agora, caso vc abra o DBEdit() com uma tabela e faça as pesquisas na outra, vc precisa inserir mais umas linhas aí nessa rotina que vc descreveu.

Vou tentar fazer um pequeno exemplo aqui:

Código: Selecionar todos

LOCAL V_COD := 0
SELE 01
USE TAB01 INDEX IDX01 // abro minha primeira tabela
DBEDIT(5,5,20,74)
IF LASTKEY() = 13 // teclou enter
   V_COD := TAB01->CODIGO   // atribuo valores a V_COD
ELSE
   RETURN .T.
ENDIF

SELE 02
USE TAB02 INDEX IDX02
SEEK V_COD
IF FOUND()
    ... // seus códigos
ELSE
   ... // seus códigos
ENDIF
RETURN

Espero ter ajudado. Abraços !!!

Enviado: 15 Fev 2007 15:13
por kirua
iae blz cara?

seguinte....
como eu tinha falado eu só coloquei a parte principal do codigo mesmo mas eu declarei normal a variavel, o unico problema é q quando eu chamo a função pesquisar (q é o nome dessa função) ela passa direto pelo else...
o found não da true no seek pra q o IF funcione direito...
explicando melhor.

o q eu quero é o seguinte....
tenho um menu, submenu, uma das opçoes do submenu chama-se pesquisar.
o q eu quero, é fazer o cliente começar a digitar e as letras inicias dos nomes da pessoas e ja vai formando a lista;

exemplo:

Código: Selecionar todos

              F                       //a letra q o usuario digitou
              Fabio                 //os nomes com F
              Fabiana
              Felipe                 
              Fernando
              
              Fe                    // o usuario continua digitando
              Felipe              //os nomes com Fe
              Fernando
Entende? Tipo uma sequencia... (facilidade na pesquisa isso é o ponto chave)

Valeu??

t+ espero resposta...

Obrigado

Enviado: 15 Fev 2007 15:28
por acelconsultoria
Ah, meu amigo, agora eu entendi.


Mas pra isso, vc vai ter que mudar "a estratégia"... rsssss....

Fazer uma pesquisa letra-a-letra, desse jeito que vc está fazendo, fica complicado. Vc precisa "armazenar" as letras que vc vai digitando.

Existe uma rotina de busca, exatamente como vc quer, que está prontinha e funcionando no site do pctoledo, na parte de downloads.

https://pctoledo.org/download/cop ... t&deonde=2

Ou, se quiser olhar como é o PRG, vou exibí-lo aqui:

Código: Selecionar todos

CLEAR
@ 01,00 TO 23,79
vCod=spac(4)
set key -1 to letraaletra
@ 14,10 say "Pressione F2 para fazer a pesquisa..."
do while .t.
  @ 10,10 say "C¢digo do Cliente..:" get vCod pict "9999"
  read
  if lastkey()=27
   exit
  endif
enddo
retu  


FUNC LETRAALETRA()
LOCAL ar_dbf:=ALIAS(), nCol:=20, nKey, v_tel_p, cor_ant:=SETCOLOR()
v_tel_p:=SAVESCREEN(0,0,MAXROW(),79)
nVar="0000"
IF !EMPTY(ar_dbf)                       // sava situacao atual
 ultreg =RECNO()                       // registro e
 ord_ind=INDEXORD()                    // indice utilizado
ENDI
USE NOMES
IF !FILE("IND1.NTX")
 INDEX ON nome TO IND1
ENDIF
SET INDEX TO IND1
GO TOP
KEYBOARD CHR(27)

aColunas:={'codigo','nome'}
SETCOLOR("W/B")
@ 03, 02, 21, 78 BOX "ÚÄ¿³ÙÄÀ³ "
@ 05,03 SAY REPLIC('Ä',75)
DBEDIT(6,3,20,77,aColunas)
@ 04, 05 SAY "Digite o Nome:"
@ 04, 20 SAY SPAC(30) COLOR "N/W"
nCol=20
@ 04, 20 SAY "" COLOR "N/W"
cNome=SPAC(00)
DO WHILE .T.
 IF LASTKEY()=13
  IF !EMPTY(ar_dbf)
   SELE (ar_dbf)  
   DBSETORDER(ord_ind) 
   GO ultreg 
  ENDI
  SETCOLOR(cor_ant)
  RESTSCREEN(0,0,MAXROW(),79,v_tel_p)
  KEYBOARD nVar
  RETURN (.t.)
 ELSE
  nKey=INKEY(0)
  IF nKey=27
   EXIT
  ENDIF
  IF nKey=13
   IF !EMPTY(ar_dbf)
    SELE (ar_dbf)  
    DBSETORDER(ord_ind) 
    GO ultreg 
   ENDI
   SETCOLOR(cor_ant)
   RESTSCREEN(0,0,MAXROW(),79,v_tel_p)
   KEYBOARD nVar
   RETURN (.t.)
  ENDIF
 ENDIF
 IF nKey=8 .or. nKey=19
  nCol=nCol-1
  IF nCol < 20
   nCol=20
  ENDIF
  cNome=SUBS(cNome,1,LEN(cNome)-1)
  @ 04, 20 SAY cNome+"  " COLOR "N/W"
 ELSEIF (nKey>=32 .and. nKey<=165)
  nCol=nCol+1
  IF nCol>=50
   nCol=50
   cNome=SUBS(cNome,1,LEN(cNome)-1)
  ENDIF
  cNome=UPPER(cNome+CHR(nKey))
  @ 04,20 SAY cNome COLOR "N/W"
 ENDIF
 IF !PESQ_DBEDIT(cNome)
  nCol=nCol - 1
  IF nCol <20
   nCol=20
  ENDIF
  cNome=SUBS(cNome,1,LEN(cNome)-1)
  @ 04,20 SAY cNome COLOR "N/W"
 ENDIF
 @ 04,20 SAY cNome COLOR "N/W"
ENDDO
IF !EMPTY(ar_dbf)
 SELE (ar_dbf)  
 DBSETORDER(ord_ind) 
 GO ultreg 
ENDI
SETCOLOR(cor_ant)
RESTSCREEN(0,0,MAXROW(),79,v_tel_p)
RETURN

FUNC PESQ_DBEDIT(cNome)
IF DBSEEK(cNome,.T.)
 nVar=CODIGO
 IF LASTKEY() <> 5 .AND. LASTKEY() <> 24
  KEYBOARD CHR(27)
 ENDIF
 DBEDIT(6,3,20,77,aColunas,"CONTROLE")
ELSE
 RETURN (.F.)
ENDIF
RETURN (.T.)

FUNC CONTROLE(nMod)
IF nMod=4
 IF LASTKEY()=13
  nVar=CODIGO
  RETURN(0)
 ELSE
  RETURN(0)
 ENDIF
ENDIF
RETURN(1)

Dê uma analisadinha aê e manda bala !!! Abraços !!!

Pesquisa letra a letra

Enviado: 28 Fev 2007 09:52
por Netavin
Olá colega !
Eu também uso a rotina Letra a Letra que peguei no Fórum.
É perfeita para o que vc quer.

Netavin.

Enviado: 09 Mar 2007 10:58
por UKclipper
Olá, gente!

Eu uso o DBEdit com uma função que permite inclusão, alteração, consulta e exclusão de registros e a procura letra a letra. Veja se isso te ajuda:

SET DATE BRITISH
SET CENTURY ON
SET SCOREBOARD OFF
SET TALK OFF
SET DELETED ON
SET EXCLUSIVE OFF
SET WRAP ON
SET PROCEDURE TO FUNCOES

tCORPREVIA = SETCOLOR()
tTELAPREVIA = SAVESCREEN(00,00,24,79)
cTITULO = "FORNECEDORES"
PUBLIC cRECARREGAR
cRECARREGAR = "SIM"
nINDICE = 1
PUBLIC CAMPOS[18], TITULOS[18], MASCARAS[18]
CAMPOS[01] = "CODIGO"
CAMPOS[02] = "RAZAO"
CAMPOS[03] = "FANTASIA"
CAMPOS[04] = "CNPJ"
CAMPOS[05] = "IE"
CAMPOS[06] = "IM"
CAMPOS[07] = "ENDERECO"
CAMPOS[08] = "BAIRRO"
CAMPOS[09] = "CEP"
CAMPOS[10] = "CIDADE"
CAMPOS[11] = "UF"
CAMPOS[12] = "PAIS"
CAMPOS[13] = "TEL"
CAMPOS[14] = "CEL"
CAMPOS[15] = "FAX"
CAMPOS[16] = "EMAIL"
CAMPOS[17] = "SITE"
CAMPOS[18] = "CONTATO"
TITULOS[01] = "CODIGO"
TITULOS[02] = "RAZAO"
TITULOS[03] = "FANTASIA"
TITULOS[04] = "CNPJ"
TITULOS[05] = "IE"
TITULOS[06] = "IM"
TITULOS[07] = "ENDERECO"
TITULOS[08] = "BAIRRO"
TITULOS[09] = "CEP"
TITULOS[10] = "CIDADE"
TITULOS[11] = "UF"
TITULOS[12] = "PAIS"
TITULOS[13] = "TEL"
TITULOS[14] = "CEL"
TITULOS[15] = "FAX"
TITULOS[16] = "EMAIL"
TITULOS[17] = "SITE"
TITULOS[18] = "CONTATO"
MASCARAS[01] = "@!"
MASCARAS[02] = "@!"
MASCARAS[03] = "@!"
MASCARAS[04] = "@!"
MASCARAS[05] = "@!"
MASCARAS[06] = "@!"
MASCARAS[07] = "@!"
MASCARAS[08] = "@!"
MASCARAS[09] = "@!"
MASCARAS[10] = "@!"
MASCARAS[11] = "@!"
MASCARAS[12] = "@!"
MASCARAS[13] = "@!"
MASCARAS[14] = "@!"
MASCARAS[15] = "@!"
MASCARAS[16] = "@!"
MASCARAS[17] = "@!"
MASCARAS[18] = "@!"
SELECT 6
IF .NOT. ABRE("FORNECED.DBF",5,"C")
SET COLOR TO W+/N
@ 24,00 CLEAR TO 24,79
@ 24,01 SAY "ARQUIVO FORNECED.DBF INDISPONIVEL NO MOMENTO! " +;
"PRESSIONE QUALQUER TECLA."
INKEY(0)
SET COLOR TO tCORPREVIA
RESTSCREEN(00,00,24,79,tTELAPREVIA)
RETURN
END IF
SET INDEX TO FORNCOD.NTX, FORNRAZ.NTX, FORNFAN.NTX
DO WHILE .T.
SET COLOR TO W+/B
@ 00,00 CLEAR TO 00,79; @ 00, ((80 - LEN("FORNECEDORES")) / 2) SAY "FORNECEDORES"
@ 24,00 CLEAR TO 24,79
@ 24,01 SAY "<F5>INCLUIR <F6>ALTERAR <F7>CONSULTAR <F8>EXCLUIR <F9>LOCALIZAR"
SELECT 6
SET ORDER TO nINDICE
IF RECCOUNT() > 0
GOTO TOP
@ 00,(79 - LEN(ALLTRIM(STR(RECCOUNT())))) SAY ALLTRIM(STR(RECCOUNT()))
ENDIF
SET COLOR TO N/W
@ 01,00 CLEAR TO 23,79
@ 01,00 TO 23,79
DBEDIT(02,01,22,77,CAMPOS,"FORNTECL",MASCARAS,TITULOS)
IF cRECARREGAR = "NAO"
EXIT
ELSEIF cRECARREGAR = "SIM"
LOOP
END IF
END DO
SET COLOR TO
CLEAR SCREEN
SET COLOR TO tCORPREVIA
RESTSCREEN(00,00,24,79,tTELAPREVIA)
CLOSE DATA
SET CURSOR ON
RETURN

FUNCTION FORNTECL
PARAMETERS MODO, POSICAO
nRETORNO = 2
IF MODO > 0 .AND. MODO < 4
TONE(1000)
END IF
RESTSCREEN(ROW(),01,ROW(),77,TRANSF(SAVESCREEN(ROW(),01,ROW(),77),;
REPLICATE("X"+CHR(31),2*77)))
INKEY(0)
KEYBOARD CHR(LASTKEY())
IF LASTKEY() = 27
cRECARREGAR = "NAO"
nRETORNO = 0
ELSEIF LASTKEY() = 13
cRECARREGAR = "SIM"
nRETORNO = 0
ELSEIF LASTKEY() = -4
DO WHILE .T.
CLEAR TYPEAHEAD
cCODIGO = SPACE(20)
cRAZAO = SPACE(50)
cFANTASIA = SPACE(50)
cCNPJ = SPACE(20)
cIE = SPACE(20)
cIM = SPACE(20)
cENDERECO = SPACE(50)
cBAIRRO = SPACE(40)
cCEP = SPACE(09)
cCIDADE = SPACE(50)
cUF = SPACE(02)
cPAIS = SPACE(20)
cTEL = SPACE(50)
cCEL = SPACE(50)
cFAX = SPACE(50)
cEMAIL = SPACE(50)
cSITE = SPACE(50)
cCONTATO = SPACE(50)
cSUBTITULO = "CADASTRO"
SET COLOR TO W+/B
@ 00,00 CLEAR TO 00,79; @ 00, ((80 - LEN("FORNECEDORES")) / 2) SAY "FORNECEDORES"
@ 00,(78 - LEN(cSUBTITULO)) SAY cSUBTITULO
@ 24,00 CLEAR TO 24,79
@ 24,01 SAY "<ESC> PARA SAIR"
SET COLOR TO N/W
@ 01,00 CLEAR TO 23,79
@ 01,01 SAY "CODIGO: "
@ 02,01 SAY "RAZAO: "
@ 03,01 SAY "FANTASIA: "
@ 04,01 SAY "CNPJ: "
@ 04,28 SAY "IE: "
@ 04,53 SAY "IM: "
@ 05,01 SAY "ENDERECO: "
@ 06,01 SAY "BAIRRO: "
@ 06,50 SAY "CEP: "
@ 07,01 SAY "CIDADE: "
@ 07,60 SAY "UF: "
@ 08,01 SAY "PAIS: "
@ 09,01 SAY "TEL: "
@ 10,01 SAY "FAX: "
@ 11,01 SAY "E-MAIL: "
@ 12,01 SAY "SITE: "
@ 13,01 SAY "CONTATO: "
SELECT 6
SET CURSOR ON
SET COLOR TO N/W,W+/N
@ 01,09 GET cCODIGO PICTURE "@!" VALID((EMPTY(cCODIGO) = .F.) .AND. (FORNTEM(cCODIGO) = .F.)) SEND COLORSPEC := "W+/N, GR+/N"
@ 02,08 GET cRAZAO PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 03,11 GET cFANTASIA PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 04,07 GET cCNPJ PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 04,32 GET cIE PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 04,57 GET cIM PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 05,11 GET cENDERECO PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 06,09 GET cBAIRRO PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 06,55 GET cCEP PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 07,09 GET cCIDADE PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 07,64 GET cUF PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 08,06 GET cTEL PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 09,06 GET cCEL PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 10,06 GET cFAX PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 11,09 GET cEMAIL PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 12,07 GET cSITE PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 13,10 GET cCONTATO PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
READ
IF LASTKEY() = 27
EXIT
END IF
cSALVAR = SPACE(01)
SET COLOR TO W+/B,W+/N
@ 24,00 CLEAR TO 24,79
@ 24,01 SAY "SALVAR AS INFORMACOES? <S/N> " GET cSALVAR PICTURE "@!" VALID(cSALVAR$"SN")
READ
IF cSALVAR = "S"
IF .NOT. INCLUI(5)
SET COLOR TO W+/B
@ 24,00 CLEAR TO 24,79
@ 24,01 SAY "REGISTRO INDISPONIVEL NO MOMENTO! PRESSIONE QUALQUER TECLA."
INKEY(0)
EXIT
ELSE
REPLACE CODIGO WITH cCODIGO,;
RAZAO WITH cRAZAO,;
FANTASIA WITH cFANTASIA,;
CNPJ WITH cCNPJ,;
IE WITH cIE,;
IM WITH cIM,;
ENDERECO WITH cENDERECO,;
BAIRRO WITH cBAIRRO,;
CEP WITH cCEP,;
CIDADE WITH cCIDADE,;
UF WITH cUF,;
PAIS WITH cPAIS,;
TEL WITH cTEL,;
CEL WITH cCEL,;
FAX WITH cFAX,;
EMAIL WITH cEMAIL,;
SITE WITH cSITE,;
CONTATO WITH cCONTATO
UNLOCK
COMMIT
END IF
END IF
EXIT
END DO
cRECARREGAR = "SIM"
nRETORNO = 0
ELSEIF LASTKEY() = -5
DO WHILE .T.
CLEAR TYPEAHEAD
cCODIGO = CODIGO
cRAZAO = RAZAO
cFANTASIA = FANTASIA
cCNPJ = CNPJ
cIE = IE
cIM = IM
cENDERECO = ENDERECO
cBAIRRO = BAIRRO
cCEP = CEP
cCIDADE = CIDADE
cUF = UF
cPAIS = PAIS
cTEL = TEL
cCEL = CEL
cFAX = FAX
cEMAIL = EMAIL
cSITE = SITE
cCONTATO = CONTATO
cSUBTITULO = "ALTERACAO"
SET COLOR TO W+/B
@ 00,00 CLEAR TO 00,79; @ 00, ((80 - LEN("FORNECEDORES")) / 2) SAY "FORNECEDORES"
@ 00,(78 - LEN(cSUBTITULO)) SAY cSUBTITULO
@ 24,00 CLEAR TO 24,79
@ 24,01 SAY "<ESC> PARA SAIR"
SET COLOR TO N/W
@ 01,00 CLEAR TO 23,79
@ 01,01 SAY "CODIGO: "
@ 02,01 SAY "RAZAO: "
@ 03,01 SAY "FANTASIA: "
@ 04,01 SAY "CNPJ: "
@ 04,28 SAY "IE: "
@ 04,53 SAY "IM: "
@ 05,01 SAY "ENDERECO: "
@ 06,01 SAY "BAIRRO: "
@ 06,50 SAY "CEP: "
@ 07,01 SAY "CIDADE: "
@ 07,60 SAY "UF: "
@ 08,01 SAY "PAIS: "
@ 09,01 SAY "TEL: "
@ 10,01 SAY "FAX: "
@ 11,01 SAY "E-MAIL: "
@ 12,01 SAY "SITE: "
@ 13,01 SAY "CONTATO: "
SET CURSOR ON
SELECT 6
SET COLOR TO W+/B,W+/N
@ 01,09 SAY cCODIGO PICTURE "@!"
@ 02,08 GET cRAZAO PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 03,11 GET cFANTASIA PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 04,07 GET cCNPJ PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 04,32 GET cIE PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 04,57 GET cIM PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 05,11 GET cENDERECO PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 06,09 GET cBAIRRO PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 06,55 GET cCEP PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 07,09 GET cCIDADE PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 07,64 GET cUF PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 08,06 GET cTEL PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 09,06 GET cCEL PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 10,06 GET cFAX PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 11,09 GET cEMAIL PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 12,07 GET cSITE PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
@ 13,10 GET cCONTATO PICTURE "@!" SEND COLORSPEC := "W+/N, GR+/N"
READ
IF LASTKEY() = 27
EXIT
END IF
cSALVAR = SPACE(01)
SET COLOR TO W+/B,W+/N
@ 24,00 CLEAR TO 24,79
@ 24,01 SAY "SALVAR AS INFORMACOES? <S/N> " GET cSALVAR PICTURE "@!" VALID(cSALVAR$"SN")
READ
IF cSALVAR = "S"
IF .NOT. BLOQUEIA(5)
SET COLOR TO W+/B
@ 24,00 CLEAR TO 24,79
@ 24,01 SAY "REGISTRO INDISPONIVEL NO MOMENTO! PRESSIONE QUALQUER TECLA."
INKEY(0)
EXIT
ELSE
REPLACE CODIGO WITH cCODIGO,;
RAZAO WITH cRAZAO,;
FANTASIA WITH cFANTASIA,;
CNPJ WITH cCNPJ,;
IE WITH cIE,;
IM WITH cIM,;
ENDERECO WITH cENDERECO,;
BAIRRO WITH cBAIRRO,;
CEP WITH cCEP,;
CIDADE WITH cCIDADE,;
UF WITH cUF,;
PAIS WITH cPAIS,;
TEL WITH cTEL,;
CEL WITH cCEL,;
FAX WITH cFAX,;
EMAIL WITH cEMAIL,;
SITE WITH cSITE,;
CONTATO WITH cCONTATO
UNLOCK
COMMIT
END IF
END IF
EXIT
END DO
cRECARREGAR = "SIM"
nRETORNO = 0
ELSEIF LASTKEY() = -6
CLEAR TYPEAHEAD
cCODIGO = CODIGO
cRAZAO = RAZAO
cFANTASIA = FANTASIA
cCNPJ = CNPJ
cIE = IE
cIM = IM
cENDERECO = ENDERECO
cBAIRRO = BAIRRO
cCEP = CEP
cCIDADE = CIDADE
cUF = UF
cPAIS = PAIS
cTEL = TEL
cCEL = CEL
cFAX = FAX
cEMAIL = EMAIL
cSITE = SITE
cCONTATO = CONTATO
cSUBTITULO = "CONSULTA"
SET COLOR TO W+/B
@ 00,00 CLEAR TO 00,79; @ 00, ((80 - LEN("FORNECEDORES")) / 2) SAY "FORNECEDORES"
@ 00,(78 - LEN(cSUBTITULO)) SAY cSUBTITULO
@ 24,00 CLEAR TO 24,79
@ 24,01 SAY "<ESC> PARA SAIR"
SET COLOR TO N/W
@ 01,00 CLEAR TO 23,79
@ 01,01 SAY "CODIGO: "
@ 02,01 SAY "RAZAO: "
@ 03,01 SAY "FANTASIA: "
@ 04,01 SAY "CNPJ: "
@ 04,28 SAY "IE: "
@ 04,53 SAY "IM: "
@ 05,01 SAY "ENDERECO: "
@ 06,01 SAY "BAIRRO: "
@ 06,50 SAY "CEP: "
@ 07,01 SAY "CIDADE: "
@ 07,60 SAY "UF: "
@ 08,01 SAY "PAIS: "
@ 09,01 SAY "TEL: "
@ 10,01 SAY "FAX: "
@ 11,01 SAY "E-MAIL: "
@ 12,01 SAY "SITE: "
@ 13,01 SAY "CONTATO: "
SET COLOR TO W+/B
@ 01,09 SAY cCODIGO PICTURE "@!"
@ 02,08 SAY cRAZAO PICTURE "@!"
@ 03,11 SAY cFANTASIA PICTURE "@!"
@ 04,07 SAY cCNPJ PICTURE "@!"
@ 04,32 SAY cIE PICTURE "@!"
@ 04,57 SAY cIM PICTURE "@!"
@ 05,11 SAY cENDERECO PICTURE "@!"
@ 06,09 SAY cBAIRRO PICTURE "@!"
@ 06,55 SAY cCEP PICTURE "@!"
@ 07,09 SAY cCIDADE PICTURE "@!"
@ 07,64 SAY cUF PICTURE "@!"
@ 08,06 SAY cTEL PICTURE "@!"
@ 09,06 SAY cCEL PICTURE "@!"
@ 10,06 SAY cFAX PICTURE "@!"
@ 11,09 SAY cEMAIL PICTURE "@!"
@ 12,07 SAY cSITE PICTURE "@!"
@ 13,10 SAY cCONTATO PICTURE "@!"
INKEY(0)
cRECARREGAR = "SIM"
nRETORNO = 0
ELSEIF LASTKEY() = -7
CLEAR TYPEAHEAD
cCODIGO = CODIGO
cRAZAO = RAZAO
cFANTASIA = FANTASIA
cCNPJ = CNPJ
cIE = IE
cIM = IM
cENDERECO = ENDERECO
cBAIRRO = BAIRRO
cCEP = CEP
cCIDADE = CIDADE
cUF = UF
cPAIS = PAIS
cTEL = TEL
cCEL = CEL
cFAX = FAX
cEMAIL = EMAIL
cSITE = SITE
cCONTATO = CONTATO
cSUBTITULO = "EXCLUSAO"
SET COLOR TO W+/B
@ 00,00 CLEAR TO 00,79; @ 00, ((80 - LEN("FORNECEDORES")) / 2) SAY "FORNECEDORES"
@ 00,(78 - LEN(cSUBTITULO)) SAY cSUBTITULO
@ 24,00 CLEAR TO 24,79
@ 24,01 SAY "<ESC> PARA SAIR"
SET COLOR TO N/W
@ 01,00 CLEAR TO 23,79
@ 01,01 SAY "CODIGO: "
@ 02,01 SAY "RAZAO: "
@ 03,01 SAY "FANTASIA: "
@ 04,01 SAY "CNPJ: "
@ 04,28 SAY "IE: "
@ 04,53 SAY "IM: "
@ 05,01 SAY "ENDERECO: "
@ 06,01 SAY "BAIRRO: "
@ 06,50 SAY "CEP: "
@ 07,01 SAY "CIDADE: "
@ 07,60 SAY "UF: "
@ 08,01 SAY "PAIS: "
@ 09,01 SAY "TEL: "
@ 10,01 SAY "FAX: "
@ 11,01 SAY "E-MAIL: "
@ 12,01 SAY "SITE: "
@ 13,01 SAY "CONTATO: "
SET COLOR TO W+/B
@ 01,09 SAY cCODIGO PICTURE "@!"
@ 02,08 SAY cRAZAO PICTURE "@!"
@ 03,11 SAY cFANTASIA PICTURE "@!"
@ 04,07 SAY cCNPJ PICTURE "@!"
@ 04,32 SAY cIE PICTURE "@!"
@ 04,57 SAY cIM PICTURE "@!"
@ 05,11 SAY cENDERECO PICTURE "@!"
@ 06,09 SAY cBAIRRO PICTURE "@!"
@ 06,55 SAY cCEP PICTURE "@!"
@ 07,09 SAY cCIDADE PICTURE "@!"
@ 07,64 SAY cUF PICTURE "@!"
@ 08,06 SAY cTEL PICTURE "@!"
@ 09,06 SAY cCEL PICTURE "@!"
@ 10,06 SAY cFAX PICTURE "@!"
@ 11,09 SAY cEMAIL PICTURE "@!"
@ 12,07 SAY cSITE PICTURE "@!"
@ 13,10 SAY cCONTATO PICTURE "@!"
SET CURSOR ON
cEXCLUIR = SPACE(01)
SET COLOR TO W+/B,W+/N
@ 24,00 CLEAR TO 24,79
@ 24,01 SAY "EXCLUIR ESTE REGISTRO? <S/N> " GET cEXCLUIR PICTURE "@!" VALID(cEXCLUIR$"SN")
READ
IF cEXCLUIR = "S"
IF .NOT. BLOQUEIA(5)
SET COLOR TO W+/B
@ 24,00 CLEAR TO 24,79
@ 24,01 SAY "REGISTRO INDISPONIVEL NO MOMENTO! PRESSIONE QUALQUER TECLA."
INKEY(0)
ELSE
DELETE
UNLOCK
COMMIT
END IF
END IF
cRECARREGAR = "SIM"
nRETORNO = 0
ELSEIF LASTKEY() = -8
CLEAR TYPEAHEAD
DO WHILE .T.
SET CURSOR ON
cPROCURARPOR = "1"
cLOCALIZAR = SPACE(50)
SET COLOR TO N/W,W+/N
@ 20,00 CLEAR TO 23,79
@ 20,00 TO 23,79
@ 21,02 SAY "1-CODIGO 2-RAZAO 3-FANTASIA"
@ 22,02 SAY "PROCURAR POR: "
@ 22,16 GET cPROCURARPOR PICTURE "@!" VALID(cPROCURARPOR$"123")
@ 22,18 GET cLOCALIZAR PICTURE "@!"
READ
IF LASTKEY() = 27
cRECARREGAR = "SIM"
nRETORNO = 0
EXIT
ENDIF
IF LEN(TRIM(cLOCALIZAR)) = 0
cRECARREGAR = "SIM"
nRETORNO = 0
EXIT
ENDIF
SELECT 6
nINDICE = VAL(cPROCURARPOR)
SET ORDER TO nINDICE
IF DBSEEK(TRIM(cLOCALIZAR), .T.)
cRECARREGAR = "SIM"
nRETORNO = 2
EXIT
ELSE
SET COLOR TO W+*/R
@ 24,00 CLEAR TO 24,79
@ 24,00 SAY "NENHUM REGISTRO ENCONTRADO! AGUARDE 3 SEGUNDOS..."
INKEY(3)
SET COLOR TO W+/B
@ 24,00 CLEAR TO 24,79
@ 24,01 SAY "<F5>INCLUIR <F6>ALTERAR <F7>CONSULTAR <F8>EXCLUIR <F9>LOCALIZAR"
cRECARREGAR = "SIM"
nRETORNO = 0
LOOP
ENDIF
ENDDO
SET CURSOR OFF
SET COLOR TO N/W,W+/B
@ 01,00 CLEAR TO 23,79
@ 01,00 TO 23,79
ELSEIF LASTKEY() = 19
KEYBOARD CHR(26)
ELSEIF LASTKEY() = 4
KEYBOARD CHR(2)
END IF
RETURN(nRETORNO)

FUNCTION FORNTEM
PARAMETERS cCHAVE
SELECT 6
SEEK cCHAVE
IF FOUND()
SET COLOR TO W+/B
@ 24,00 CLEAR TO 24,79
@ 24,01 SAY "REGISTRO JA EXISTE! PRESSIONE QUALQUER TECLA PARA SAIR."
INKEY(0)
@ 24,00 CLEAR TO 24,79
@ 24,01 SAY "<ESC>SAIR"
RETURN(.T.)
ELSE
RETURN(.F.)
END IF