Exclusão de Registros em TBrowse()
Enviado: 26 Mai 2008 09:40
Bom dia, amigos!
Continuando minha odisséia com o tbrowse, tive mais um problema com o bichinho... :(Neg
Sempre, após uma inclusão, alteração ou exclusão, coloco o comando RefreshAll() com a intenção de fazer com que o TBrowse leia novamente todos os dados na base de dados e me mostre os registros reais. Mas, quando excluo algum registro, ele continua sendo mostrado!
O que estou fazendo errado? :-O
Eis o código:
Continuando minha odisséia com o tbrowse, tive mais um problema com o bichinho... :(Neg
Sempre, após uma inclusão, alteração ou exclusão, coloco o comando RefreshAll() com a intenção de fazer com que o TBrowse leia novamente todos os dados na base de dados e me mostre os registros reais. Mas, quando excluo algum registro, ele continua sendo mostrado!
O que estou fazendo errado? :-O
Eis o código:
Código: Selecionar todos
SET DELETED ON
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 EMPS0001.CDX, EMPS0002.CDX, EMPS0003.CDX
FIRMA()
FUNCTION FIRMA()
LOCAL oTBR
LOCAL nTECLA
LOCAL tTELA
LOCAL tCOR
LOCAL nLOCALIZAR
LOCAL cLOCALIZAR := SPACE(50)
LOCAL cCODIGO := SPACE(10)
LOCAL cRAZAO := SPACE(50)
LOCAL cFANTASIA := SPACE(50)
LOCAL cCNPJ := SPACE(20)
LOCAL cIE := SPACE(20)
LOCAL cIM := SPACE(20)
LOCAL cENDERECO := SPACE(50)
LOCAL cBAIRRO := SPACE(40)
LOCAL cCEP := SPACE(10)
LOCAL cCIDADE := SPACE(50)
LOCAL cUF := SPACE(02)
LOCAL cPAIS := SPACE(20)
LOCAL cTEL := SPACE(50)
LOCAL cCEL := SPACE(50)
LOCAL cFAX := SPACE(50)
LOCAL cEMAIL := SPACE(50)
LOCAL cSITE := SPACE(50)
LOCAL cCONTATO := SPACE(50)
SET COLOR TO W+/B
@ 00,00 CLEAR TO 00,79
@ 00,((80 - LEN("EMPRESAS")) / 2) SAY "EMPRESAS"
SELECT 1
SET ORDER TO 1
SET COLOR TO W+/N
@ 24,00 CLEAR TO 24,79
@ 24,00 SAY "<F5>INCLUIR <F6>ALTERAR <F7>VISUALIZAR <F8>EXCLUIR <F9>LOCALIZAR <ESC>SAIR"
SET COLOR TO B/W,W+/B
@ 01,00 CLEAR TO 23,79
@ 01,00 TO 23,79
oTBR := TBROWSEDB(02,01,22,78)
oTBR:HEADSEP := CHR(196)
oTBR:COLSEP := CHR(179)
oTBR:ADDCOLUMN(TBCOLUMNNEW("CODIGO",{||CODIGO}))
oTBR:ADDCOLUMN(TBCOLUMNNEW("RAZAO",{||RAZAO}))
oTBR:ADDCOLUMN(TBCOLUMNNEW("FANTASIA",{||FANTASIA}))
oTBR:COLORSPEC := "B/W,W+/B"
DO WHILE nTECLA <> 27
oTBR:COLORRECT({oTBR:ROWPOS,1,oTBR:ROWPOS,oTBR:COLCOUNT},{1,1})
DO WHILE .NOT. oTBR:STABILIZE() = .T.
ENDDO
oTBR:COLORRECT({oTBR:ROWPOS,1,oTBR:ROWPOS,oTBR:COLCOUNT},{2,2})
nTECLA = INKEY(0)
DO CASE
CASE nTECLA = 5; oTBR:UP()
CASE nTECLA = 24; oTBR:DOWN()
CASE nTECLA = 19; oTBR:LEFT()
CASE nTECLA = 4; oTBR:RIGHT()
CASE nTECLA = 1; oTBR:HOME()
CASE nTECLA = 6; oTBR:END()
CASE nTECLA = 18; oTBR:PAGEUP()
CASE nTECLA = 3; oTBR:PAGEDOWN()
CASE nTECLA = 27; EXIT
CASE nTECLA = -4
CLEAR TYPEAHEAD
tTELA = SAVESCREEN(00,00,24,80)
tCOR = SETCOLOR()
SET CURSOR ON
DO WHILE .T.
cCODIGO = SPACE(10)
cRAZAO = SPACE(50)
cFANTASIA = SPACE(50)
cCNPJ = SPACE(20)
cIE = SPACE(20)
cIM = SPACE(20)
cENDERECO = SPACE(50)
cBAIRRO = SPACE(40)
cCEP = SPACE(10)
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)
SET COLOR TO W+/B
@ 00,00 CLEAR TO 00,79
@ 00,((80 - LEN("EMPRESAS")) / 2) SAY "EMPRESAS"
@ 00,71 SAY "CADASTRO "
SET COLOR TO W+/N
@ 24,00 CLEAR TO 24,79
@ 24,00 SAY "<ESC>SAIR"
SET COLOR TO B/W,N/W
@ 01,00 CLEAR TO 23,79
@ 02,01 SAY "CODIGO: "
@ 03,01 SAY "RAZAO: "
@ 04,01 SAY "FANTASIA: "
@ 05,01 SAY "CNPJ: "
@ 05,28 SAY "IE: "
@ 05,53 SAY "IM: "
@ 06,01 SAY "ENDERECO: "
@ 07,01 SAY "BAIRRO: "
@ 07,50 SAY "CEP: "
@ 08,01 SAY "CIDADE: "
@ 08,60 SAY "UF: "
@ 09,01 SAY "PAIS: "
@ 10,01 SAY "TEL: "
@ 11,01 SAY "CEL: "
@ 12,01 SAY "FAX: "
@ 13,01 SAY "E-MAIL: "
@ 14,01 SAY "SITE: "
@ 15,01 SAY "CONTATO: "
@ 02,09 GET cCODIGO PICTURE "@!" VALID(EMPSTEM(cCODIGO) = .F.) SEND COLORSPEC := "N/W,W+/N"
@ 03,08 GET cRAZAO PICTURE "@!" SEND COLORSPEC := "B/W,W+/N"
@ 04,11 GET cFANTASIA PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 05,07 GET cCNPJ PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 05,32 GET cIE PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 05,57 GET cIM PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 06,11 GET cENDERECO PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 07,09 GET cBAIRRO PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 07,55 GET cCEP PICTURE "99.999-999" SEND COLORSPEC := "N/W,W+/N"
@ 08,09 GET cCIDADE PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 08,64 GET cUF PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 09,07 GET cPAIS PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 10,06 GET cTEL PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 11,06 GET cCEL PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 12,06 GET cFAX PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 13,09 GET cEMAIL PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 14,07 GET cSITE PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 15,10 GET cCONTATO PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
READ
IF LASTKEY() = 27
EXIT
ENDIF
IF ALERTA("SALVAR INFORMACOES?",{"SIM","NAO"},"W+/B") = 1
SELECT 1
SET ORDER TO 1
IF DBSEEK(cCODIGO) = .T.
IF .NOT. BLOQUEIA(5)
ALERTA("REGISTRO INDISPONIVEL NO MOMENTO!",{"OK"},"W+/B")
LOOP
ENDIF
ELSE
IF .NOT. INCLUI(5)
ALERTA("REGISTRO INDISPONIVEL NO MOMENTO!",{"OK"},"W+/B")
LOOP
ENDIF
ENDIF
REPLACE CODIGO WITH cCODIGO
REPLACE RAZAO WITH cRAZAO
REPLACE FANTASIA WITH cFANTASIA
REPLACE CNPJ WITH cCNPJ
REPLACE IE WITH cIE
REPLACE IM WITH cIM
REPLACE ENDERECO WITH cENDERECO
REPLACE BAIRRO WITH cBAIRRO
REPLACE CEP WITH cCEP
REPLACE CIDADE WITH cCIDADE
REPLACE UF WITH cUF
REPLACE PAIS WITH cPAIS
REPLACE TEL WITH cTEL
REPLACE CEL WITH cCEL
REPLACE FAX WITH cFAX
REPLACE EMAIL WITH cEMAIL
REPLACE SITE WITH cSITE
REPLACE CONTATO WITH cCONTATO
DBUNLOCK()
DBCOMMIT()
ENDIF
ENDDO
SET CURSOR OFF
CLEAR TYPEAHEAD
SETCOLOR(tCOR)
RESTSCREEN(00,00,24,80,tTELA)
oTBR:REFRESHALL()
CASE nTECLA = -5
CLEAR TYPEAHEAD
tTELA = SAVESCREEN(00,00,24,80)
tCOR = SETCOLOR()
SET CURSOR ON
DO WHILE .T.
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
nSAIR = 0
SET COLOR TO W+/B
@ 00,00 CLEAR TO 00,79
@ 00,((80 - LEN("EMPRESAS")) / 2) SAY "EMPRESAS"
@ 00,71 SAY "ALTERACAO"
SET COLOR TO W+/N
@ 24,00 CLEAR TO 24,79
@ 24,00 SAY "<ESC>SAIR"
SET COLOR TO B/W,N/W
@ 01,00 CLEAR TO 23,79
@ 02,01 SAY "CODIGO: "
@ 03,01 SAY "RAZAO: "
@ 04,01 SAY "FANTASIA: "
@ 05,01 SAY "CNPJ: "
@ 05,28 SAY "IE: "
@ 05,53 SAY "IM: "
@ 06,01 SAY "ENDERECO: "
@ 07,01 SAY "BAIRRO: "
@ 07,50 SAY "CEP: "
@ 08,01 SAY "CIDADE: "
@ 08,60 SAY "UF: "
@ 09,01 SAY "PAIS: "
@ 10,01 SAY "TEL: "
@ 11,01 SAY "CEL: "
@ 12,01 SAY "FAX: "
@ 13,01 SAY "E-MAIL: "
@ 14,01 SAY "SITE: "
@ 15,01 SAY "CONTATO: "
@ 02,09 SAY cCODIGO PICTURE "@!"
@ 03,08 GET cRAZAO PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 04,11 GET cFANTASIA PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 05,07 GET cCNPJ PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 05,32 GET cIE PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 05,57 GET cIM PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 06,11 GET cENDERECO PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 07,09 GET cBAIRRO PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 07,55 GET cCEP PICTURE "99.999-999" SEND COLORSPEC := "N/W,W+/N"
@ 08,09 GET cCIDADE PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 08,64 GET cUF PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 09,07 GET cPAIS PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 10,06 GET cTEL PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 11,06 GET cCEL PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 12,06 GET cFAX PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 13,09 GET cEMAIL PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 14,07 GET cSITE PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
@ 15,10 GET cCONTATO PICTURE "@!" SEND COLORSPEC := "N/W,W+/N"
READ
IF LASTKEY() = 27
EXIT
ENDIF
IF ALERTA("SALVAR INFORMACOES?",{"SIM","NAO"},"W+/B") = 1
SELECT 1
SET ORDER TO 1
IF DBSEEK(cCODIGO) = .T.
IF .NOT. BLOQUEIA(5)
ALERTA("REGISTRO INDISPONIVEL NO MOMENTO!",{"OK"},"W+/B")
EXIT
ENDIF
ELSE
IF .NOT. INCLUI(5)
ALERTA("REGISTRO INDISPONIVEL NO MOMENTO!",{"OK"},"W+/B")
EXIT
ENDIF
ENDIF
REPLACE CODIGO WITH cCODIGO
REPLACE RAZAO WITH cRAZAO
REPLACE FANTASIA WITH cFANTASIA
REPLACE CNPJ WITH cCNPJ
REPLACE IE WITH cIE
REPLACE IM WITH cIM
REPLACE ENDERECO WITH cENDERECO
REPLACE BAIRRO WITH cBAIRRO
REPLACE CEP WITH cCEP
REPLACE CIDADE WITH cCIDADE
REPLACE UF WITH cUF
REPLACE PAIS WITH cPAIS
REPLACE TEL WITH cTEL
REPLACE CEL WITH cCEL
REPLACE FAX WITH cFAX
REPLACE EMAIL WITH cEMAIL
REPLACE SITE WITH cSITE
REPLACE CONTATO WITH cCONTATO
DBUNLOCK()
DBCOMMIT()
EXIT
ELSE
EXIT
ENDIF
ENDDO
SET CURSOR OFF
CLEAR TYPEAHEAD
SETCOLOR(tCOR)
RESTSCREEN(00,00,24,80,tTELA)
oTBR:REFRESHALL()
CASE nTECLA = -6
CLEAR TYPEAHEAD
tTELA = SAVESCREEN(00,00,24,80)
tCOR = SETCOLOR()
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
SET COLOR TO W+/B
@ 00,00 CLEAR TO 00,79
@ 00,((80 - LEN("EMPRESAS")) / 2) SAY "EMPRESAS"
@ 00,71 SAY "CONSULTA "
SET COLOR TO W+/N
@ 24,00 CLEAR TO 24,79
@ 24,00 SAY "PRESSIONE QUALQUER TECLA"
SET COLOR TO B/W
@ 01,00 CLEAR TO 23,79
@ 02,01 SAY "CODIGO: "
@ 03,01 SAY "RAZAO: "
@ 04,01 SAY "FANTASIA: "
@ 05,01 SAY "CNPJ: "
@ 05,28 SAY "IE: "
@ 05,53 SAY "IM: "
@ 06,01 SAY "ENDERECO: "
@ 07,01 SAY "BAIRRO: "
@ 07,50 SAY "CEP: "
@ 08,01 SAY "CIDADE: "
@ 08,60 SAY "UF: "
@ 09,01 SAY "PAIS: "
@ 10,01 SAY "TEL: "
@ 11,01 SAY "CEL: "
@ 12,01 SAY "FAX: "
@ 13,01 SAY "E-MAIL: "
@ 14,01 SAY "SITE: "
@ 15,01 SAY "CONTATO: "
SET COLOR TO N/W
@ 02,09 SAY cCODIGO PICTURE "@!"
@ 03,08 SAY cRAZAO PICTURE "@!"
@ 04,11 SAY cFANTASIA PICTURE "@!"
@ 05,07 SAY cCNPJ PICTURE "@!"
@ 05,32 SAY cIE PICTURE "@!"
@ 05,57 SAY cIM PICTURE "@!"
@ 06,11 SAY cENDERECO PICTURE "@!"
@ 07,09 SAY cBAIRRO PICTURE "@!"
@ 07,55 SAY cCEP PICTURE "99.999-999"
@ 08,09 SAY cCIDADE PICTURE "@!"
@ 08,64 SAY cUF PICTURE "@!"
@ 09,07 SAY cPAIS PICTURE "@!"
@ 10,06 SAY cTEL PICTURE "@!"
@ 11,06 SAY cCEL PICTURE "@!"
@ 12,06 SAY cFAX PICTURE "@!"
@ 13,09 SAY cEMAIL PICTURE "@!"
@ 14,07 SAY cSITE PICTURE "@!"
@ 15,10 SAY cCONTATO PICTURE "@!"
INKEY(0)
CLEAR TYPEAHEAD
SETCOLOR(tCOR)
RESTSCREEN(00,00,24,80,tTELA)
oTBR:REFRESHALL()
CASE nTECLA = -7
CLEAR TYPEAHEAD
tTELA = SAVESCREEN(00,00,24,80)
tCOR = SETCOLOR()
cFANTASIA = FANTASIA
DO WHILE .T.
IF ALERTA("CODIGO: " + ALLTRIM(CODIGO) + ". DESEJA REALMENTE EXCLUIR ESTE REGISTRO?",{"SIM","NAO"},"W+/B") = 1
IF .NOT. BLOQUEIA(5)
ALERTA("REGISTRO INDISPONIVEL NO MOMENTO!",{"OK"},"W+/B")
EXIT
ENDIF
DELETE
DBUNLOCK()
DBCOMMIT()
EXIT
ELSE
EXIT
ENDIF
ENDDO
CLEAR TYPEAHEAD
SETCOLOR(tCOR)
RESTSCREEN(00,00,24,80,tTELA)
oTBR:REFRESHALL()
CASE nTECLA = -8
CLEAR TYPEAHEAD
tTELA = SAVESCREEN(00,00,24,80)
tCOR = SETCOLOR()
nLOCALIZAR = 1
DO WHILE .T.
SET COLOR TO W+/B,W+/N
@ 08,13 CLEAR TO 15,66
@ 08,13 TO 15,66
DBGSHADOW(08,13,15,66)
@ 08,35 SAY "LOCALIZAR"
@ 10,15 SAY "1-CODIGO 2-RAZAO 3-FANTASIA"
@ 12,15 SAY "VALOR A SER LOCALIZADO"
SET CURSOR ON
@ 10,43 GET nLOCALIZAR PICTURE "9" VALID((nLOCALIZAR = 1) .OR. (nLOCALIZAR = 2) .OR. (nLOCALIZAR = 3))
@ 13,15 GET cLOCALIZAR PICTURE "@!"
READ
IF LASTKEY() = 27
SET ORDER TO 1
EXIT
ENDIF
SELECT 1
SET ORDER TO nLOCALIZAR
IF DBSEEK(ALLTRIM(cLOCALIZAR),.T.) = .F.
ALERTA("REGISTRO NAO LOCALIZADO!",{"OK"},"W+/B")
LOOP
ELSE
EXIT
ENDIF
ENDDO
SET CURSOR OFF
CLEAR TYPEAHEAD
SETCOLOR(tCOR)
RESTSCREEN(00,00,24,80,tTELA)
oTBR:REFRESHALL()
ENDCASE
ENDDO
CLOSE DATA
RETURN(NIL)