Exclusão de Registros em TBrowse()

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

labaroazul
Usuário Nível 2
Usuário Nível 2
Mensagens: 83
Registrado em: 26 Fev 2008 14:52
Localização: São Paulo - SP
Contato:

Exclusão de Registros em TBrowse()

Mensagem por labaroazul »

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! :P

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)
Windows XP Professional + Clipper 5.2e + Exospace + Dbase III Plus + SIX3 + NoDosImp + LXPic
"O trabalho afasta três males: o vício, a pobreza e o tédio." (Voltaire)
Site: http://www.labaroazul.xpg.com.br
Repositório: http://www.4shared.com/dir/31334106/e79 ... aring.html
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Exclusão de Registros em TBrowse()

Mensagem por gvc »

Mova o ponteiro de registro um registro para cima e um para baixo.
O registro aparece pq vc esta com o ponteiro sobre ele.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Exclusão de Registros em TBrowse()

Mensagem por alaminojunior »

Mova o ponteiro de registro um registro para cima e um para baixo.
O registro aparece pq vc esta com o ponteiro sobre ele.
Misericórdia !!!

Apenas a chamada RefreshAll não resolve.
Você precisa forçar a re-exibição (da maneira mais profissional possível)
Caso o seu Tbrowse seja controlado por um laço Do while ..., faça com que a cada edição no banco de dados, os dados sejam re-exibidos. Um simples loop, após o RefreshAll é o bastante.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
labaroazul
Usuário Nível 2
Usuário Nível 2
Mensagens: 83
Registrado em: 26 Fev 2008 14:52
Localização: São Paulo - SP
Contato:

Re: Exclusão de Registros em TBrowse()

Mensagem por labaroazul »

Tudo bem! Vou tentar fazer assim:

cada vez que eu der o comando:
oTBR:REFRESHALL()

Vou colocar em seguida:
Do While .not. Stabilize()
EndDo

Funcionamdo ou não, amanhâ lhes dou um retorno!

Obrigado, amigos! :D
Windows XP Professional + Clipper 5.2e + Exospace + Dbase III Plus + SIX3 + NoDosImp + LXPic
"O trabalho afasta três males: o vício, a pobreza e o tédio." (Voltaire)
Site: http://www.labaroazul.xpg.com.br
Repositório: http://www.4shared.com/dir/31334106/e79 ... aring.html
labaroazul
Usuário Nível 2
Usuário Nível 2
Mensagens: 83
Registrado em: 26 Fev 2008 14:52
Localização: São Paulo - SP
Contato:

Re: Exclusão de Registros em TBrowse()

Mensagem por labaroazul »

Tudo bem! Vou tentar fazer assim:

cada vez que eu der o comando:
oTBR:REFRESHALL()

Vou colocar em seguida:
Do While .not. Stabilize()
EndDo

Funcionamdo ou não, amanhâ lhes dou um retorno!

Obrigado, amigos! :D
Windows XP Professional + Clipper 5.2e + Exospace + Dbase III Plus + SIX3 + NoDosImp + LXPic
"O trabalho afasta três males: o vício, a pobreza e o tédio." (Voltaire)
Site: http://www.labaroazul.xpg.com.br
Repositório: http://www.4shared.com/dir/31334106/e79 ... aring.html
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Exclusão de Registros em TBrowse()

Mensagem por sygecom »

labaroazul escreveu:Tudo bem! Vou tentar fazer assim:

cada vez que eu der o comando:
oTBR:REFRESHALL()

Vou colocar em seguida:
Do While .not. Stabilize()
EndDo
Errado. Apenas de um LOOP depois do "oTBR:REFRESHALL()"
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Re: Exclusão de Registros em TBrowse()

Mensagem por Pablo César »

Apenas como lembrete... o SET DELETED ON é fundamental para o bom funcionamento.

Inclusive as vezes, quando me encontro com o primeiro registro a ser alterado ou deletado preciso reproduzir:
K_CTRL_PGDN e logo K_CTRL_PGUP para que o ponteiro tenha efeito.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Exclusão de Registros em TBrowse()

Mensagem por sygecom »

Segue em anexo um exemplo. é só compilar.
Anexos
tbrowse.rar
(15.56 KiB) Baixado 105 vezes
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Exclusão de Registros em TBrowse()

Mensagem por gvc »

[alaminojunior]
Não entendi o que vc tentou dizer. Poderia especificar e exemplificar?
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Exclusão de Registros em TBrowse()

Mensagem por alaminojunior »

GVC. O RefreshAll apenas atualiza o objeto tbrowse, para atualizar a "exibição" dos dados na tela, precisa forçar a re-exibição. Como geralmente este objeto tbrowse, é controlado dentro de um laço Do While, basta o loop.

Exemplo:

Código: Selecionar todos

Tb4:= tbcolumnnew(cab, { || strzero(memcod,6) + " " + memnom })
Tb3:= tbrowseDB(02,02,12,77)
Tb3:headsep:= "Ä"
Tb3:colorspec:= "b/w,gr+/b,r+/w,r+/n,b/w"
Tb4:defcolor:= {5}
Tb4:colorblock:= {|tb3| iif(!mematv, {3,4},{1,2})}
Tb3:addcolumn(Tb4)
do while .t.
   Do while !Tb3:stabilize()
   Enddo
   Mostra()
   page("TELA PRINCIPAL")
   tempo:= inkey(30)
   do case
      case tempo = 0
	      tb3:refreshall()
	      loop
      case tempo == K_DOWN
	      Tb3:down()
              tb3:refreshall()
              loop
      case tempo == K_UP
             Tb3:up()
	     tb3:refreshall()
             loop
      case tempo == K_PGDN
	     Tb3:PageDown()
	     tb3:refreshall()
             loop
      case tempo == K_PGUP
             Tb3:PageUp()
	     tb3:refreshall()
             loop
      case tempo == K_INS
             Inclui()
	     Tb3:RefreshAll()
             loop
      case tempo == K_SPACE
             Altera()
            Tb3:RefreshAll()
             loop
      case tempo = K_F1
             helpp()
             loop
   endcase
enddo
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Exclusão de Registros em TBrowse()

Mensagem por gvc »

[alaminojunior]
Curioso...
Supondo que seja esta parte:

Código: Selecionar todos

Do while !Tb3:stabilize()
Enddo
Eu uso e mesmo assim tenho que mover o ponteiro.
Mas tudo bem.
Vamos aguardar o que o labaroazul conseguiu fazer para resolver o problema.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Re: Exclusão de Registros em TBrowse()

Mensagem por lucimauro »

Amigos depois do comando DBDELETE voce podem usar a funcao abaixo que resolve o problema.


essa variavel [brow_mov] seria o variarel matriz do seu tbrowse ok.


procedure mov_browse ( brow_mov )
dbskip( -1 )
inicio_arq := bof()
dbskip( )
brow_mov:refreshall()
if inicio_arq
brow_mov:gotop()
endif
brow_mov:refreshcurrent()


Quanquer coisa to aqui,
labaroazul
Usuário Nível 2
Usuário Nível 2
Mensagens: 83
Registrado em: 26 Fev 2008 14:52
Localização: São Paulo - SP
Contato:

Re: Exclusão de Registros em TBrowse()

Mensagem por labaroazul »

Muito obrigado, amigos! Consegui! :{ :{ :{ :*

O que fiz, seguindo o que um de vocês sugeriu, foi o seguinte: após cada "oTBR:REFRESHALL()" eu coloquei um comando "LOOP" que força o "DO WHILE" a ser executado novamente. E ficou um chuchu! :-Y

Eis o código completo:

Código: Selecionar todos

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()
            LOOP
        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
                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()
            LOOP
        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()
            LOOP
        CASE nTECLA = -7
            CLEAR TYPEAHEAD
            tTELA = SAVESCREEN(00,00,24,80)
            tCOR = SETCOLOR()
            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()
            LOOP
        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()
            LOOP
        ENDCASE
    ENDDO
    CLOSE DATA
RETURN(NIL)

FUNCTION EMPSTEM(cCHAVE)
SELECT 1
SET ORDER TO 1
IF DBSEEK(cCHAVE) = .T.
    ALERTA("REGISTRO JA CADASTRADO!",{"OK"},"W+/B")
    RETURN(.T.)
ELSE
    RETURN(.F.)
ENDIF
Windows XP Professional + Clipper 5.2e + Exospace + Dbase III Plus + SIX3 + NoDosImp + LXPic
"O trabalho afasta três males: o vício, a pobreza e o tédio." (Voltaire)
Site: http://www.labaroazul.xpg.com.br
Repositório: http://www.4shared.com/dir/31334106/e79 ... aring.html
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Exclusão de Registros em TBrowse()

Mensagem por alaminojunior »

O que fiz, seguindo o que um de vocês sugeriu, foi o seguinte: após cada "oTBR:REFRESHALL()" eu coloquei um comando "LOOP" que força o "DO WHILE" a ser executado novamente. E ficou um chuchu! :-Y
Não vamos exagerar, é apenas o modo correto e mais simples. Não há necessidade de outras funções.
Em todo o tempo que trabalho com o Tbrowse, o único "pepino" com o qual me deparei, foi o seguinte caso:
Ao listar registros com o tbrowse; tendo indexado estes registros, por ordem numérica; em estando a barra de destaque ( não o ponteiro ) na ultima posição; e fizer uma consulta do item nº tal que corresponda ao 1º da tabela, a barra de destaque não ia para a 1ª posição. Sendo assim precisa sim, ser utilizada uma função para resolver. Caso alguém se interesse, eu ponho ela para download.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Posicionamento da barra de navegação

Mensagem por Pablo César »

alaminojunior escreveu:o único "pepino" com o qual me deparei, foi ...//.. tendo indexado estes registros, por ordem numérica; em estando a barra de destaque ( não o ponteiro ) na ultima posição; e fizer uma consulta do item nº tal que corresponda ao 1º da tabela, a barra de destaque não ia para a 1ª posição.
Seria interessante vermos como você conseguiu, acredito que você forçou o posicionamento da barra de navegação através de KEYBOARD <n> de vezes <setinha_pra_baixo> ou <setinha_pra_cima> ? Foi assim, Alaminio ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Responder