Tentando usar o TBrowse

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Jeferson
Usuário Nível 1
Usuário Nível 1
Mensagens: 26
Registrado em: 06 Fev 2013 14:16
Localização: Niteroi/RJ

Tentando usar o TBrowse

Mensagem por Jeferson »

Olha só, estou tentando utilizar o TBrowse porem estou encontrando uma certa resistencia da parte dele mais por não saber operá-lo do que do programa propriamente dito, por isso estou recorrendo ao forum para pedir ajuda e socorro.

Não sei porque ele esta dando esse erro:

Error BASE/1004 No exported method: FORCESTABL

Segue abaixo o codigo fonte:

Código: Selecionar todos

*------------------------------------------
*   id             : tbw06.prg
*------------------------------------------
#include "inkey.ch"
#define NUM_COLS 5

LOCAL oColumn[NUM_COLS], nCnt, nKey

SELECT 1
USE NETTAB ALIAS TAB SHARED NEW         && Abre o arquivo NETTAB
IF !(FILE("INDUSU.NTX") .AND. FILE("INDCOMP.NTX"))
        INDEX ON USUARIO            TO INDUSU
        INDEX ON COMPUTADOR+USUARIO TO INDCOMP
ENDIF
SET INDEX TO INDUSU, INDCOMP            && Abre o indice do arquivo
GO TOP

SET KEY -1  TO usuario                  // F2 - Constroi lista de todos os usuarios incluindo vazios.
SET KEY -2  TO computador               // F3 - Constroi lista de todos os computadores incluindo vazios.
SET KEY -4  TO copia                    // F5 - Faz uma cópia para outro Nome de Usuário(somente registro com Computador + usuário especificado.
SET KEY 22  TO insira                  // INS - Insere um novo registro.
SET KEY  7  TO deleta                  // DEL - Deleta registro corrente após confirmação.


CLEAR
SET DATE BRITISH
SET CENTURY ON
SET SCOREBOARD OFF
nKey := 0

J_ANELA(0,0,24,79,"R+/BG","R+/BG","W/BG","[F2] Usu rio        [F3] Computador        [ESC] Termino ")


oMybrowser := TBrowseDB(02,01,23,78)

oColumn[1]   := TBColumnNew("Usu rio",{||tab->usuario})
oColumn[2]   := TBColumnNew("Computador",{||tab->computador})
oColumn[3]   := TBColumnNew("Comando",{||tab->comando})
oColumn[4]   := TBColumnNew("id",{||tab->id})
oColumn[5]   := TBColumnNew("Ativo",{||tab->ativo})

FOR nCnt := 1 TO LEN(oColumn)
        oMybrowser:addColumn(oColumn[nCnt])
*        oMybrowser:getcolumn(nCnt):colorblock=&("{||IF((MONTH(FATF0857->DAT_NF))= 2,{1,14},{5,4})}")
NEXT


oMybrowser:headSep   := CHR(196)
oMybrowser:colSep    := CHR(179)
oMybrowser:colorspec := "N/BG,R+/BG,G/BG,W+/W,G+/BG"




DO WHILE .T.

        DO CASE
                CASE    LASTKEY() = 43
                        KEYBOARD(CHR(64))
                        RETURN

                CASE    LASTKEY() = 45
                        KEYBOARD(CHR(64))
                        RETURN

                CASE    LASTKEY() = -1
                        usuario()

                CASE    LASTKEY() = -2
                        computador()

                OTHERWISE
                        IF LASTKEY() = 27
                                CLOSE ALL
                                CLEAR
                                RETURN
                        ENDIF
        ENDCASE

        oMybrowser:colorRect({oMybrowser:rowPos, 1, oMybrowser:rowPos, oMybrowser:colCount},{1,1})

        setcursor(0)

        DO WHILE !oMybrowser:stabilize()
                nkey := INKEY()

                IF nkey != 0         && Pressionada uma tecla durante a estabilizacao
                        EXIT
                ENDIF
        ENDDO
        IF oMyBrowser:Stable        && Checa se o objeto esta estavel
                IF (oMyBrowser:hittop .OR. oMyBrowser:hitbottom)        //tentou-se bof() ou eof()
                        tone(87,1)                                      // faz barulho
                        tone(40,4)                                      // faz barulho
                ENDIF

                oMybrowser:refreshAll()
                oMybrowser:ForceStable()
                oMybrowser:colorRect({oMybrowser:rowPos, 1, oMybrowser:rowPos, oMybrowser:colCount},{2,2})

*                colorwin(05,02,15,77,"w+/bg+")
*                colorwin(ROW(),03,ROW(),76,"n/w")

                nkey := INKEY(0)        // Estabilizou entro em espera, aguardando uma tecla
        ENDIF



        DO CASE
                CASE    nkey == 5               // K_UP
                        oMyBrowser:up()
                CASE    nkey == 24              // K_DOWN
                        oMyBrowser:down()
                CASE    nkey == 19              // K_LEFT
                        oMyBrowser:left()
                CASE    nkey == 4               // K_RIGHT
                        oMyBrowser:right()
                CASE    nkey == 1               // K_HOME
                        oMyBrowser:home()
                CASE    nkey == 6               // K_END
                        oMyBrowser:end()
                CASE    nkey == 18              // K_PGUP
                        oMyBrowser:pageUp()
                CASE    nkey == 3               // K_PGDN
                        oMyBrowser:pagedown()
                CASE    nkey == 31              // K_CRTL_PGUP
                        oMyBrowser:goTop()
                CASE    nkey == 30              // K_CTRL_PGDN
                        oMyBrowser:goBottom()
                CASE    nkey == 29              // K_CTRL_HOME
                        oMyBrowser:panHome()
                CASE    nkey == 23              // K_CTRL_END
                        oMyBrowser:panEnd()
                CASE    nkey == 26              // K_CRTL_LEFT
                        oMyBrowser:panLeft()
                CASE    nkey == 2               // K_CRTL_RIGHT
                        oMyBrowser:panRight()
                CASE    nkey == 27              // K_ESC
                        EXIT
        ENDCASE

ENDDO
CLEAR
CLOSE ALL
CLEAR
QUIT





******************************
FUNCTION J_ANELA
PARAMETERS L1,C1,L2,C2,C_OR1,C_OR2,C_OR3,T_ITULO
CORR=SETCOLOR()
SET COLOR TO &C_OR1
@ L1,C1 CLEAR TO L2,C2
@ L1,C1 SAY 'Ú'+REPLICATE(CHR(196),C2-C1-1)+'¿'
SET COLOR TO &C_OR3
@ L1,(80-LEN(T_ITULO))/2 SAY T_ITULO
FOR A=L1+1 TO L2-1
        SET COLOR TO &C_OR1
        @ A,C1 SAY '³'
        SET COLOR TO &C_OR2
        @ A,C2 SAY '³'
NEXT A
SET COLOR TO &C_OR2
@ L2,C1 SAY 'À'+REPLICATE(CHR(196),C2-C1-1)+'Ù'
SETCOLOR(CORR)
RETURN



FUNCTION USUARIO
RETURN NIL

FUNCTION COMPUTADOR
RETURN NIL

FUNCTION COPIA
RETURN NIL

FUNCTION INSIRA
RETURN NIL

FUNCTION DELETA
RETURN NIL

*--------------------------------------------------
*               FIM
*--------------------------------------------------
Estou tentando utilizar o TBrowse em substituição ao dbedit.

Fico grato a quem puder me auxiliar.



Jeferson.
Editado pela última vez por Pablo César em 22 Mar 2013 10:19, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Tentando usar o TBrowse

Mensagem por Jairo Maia »

Olá Jeferson,

Jeferson, se há algum erro, não está contemplado neste exemplo que você passou. Compilei em Clipper e ele funcionou corretamente. Tente compilar o exemplo que você postou e veja (a imagen está horrível, mas mostra o resultado):
TesteTbr.jpg
Nota: Nenhuma alteração foi feita no exemplo que você postou.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Jeferson
Usuário Nível 1
Usuário Nível 1
Mensagens: 26
Registrado em: 06 Fev 2013 14:16
Localização: Niteroi/RJ

Tentando usar o TBrowse

Mensagem por Jeferson »

No meu apresenta o seguinte erro:

Error BASE/1004 No exported method: FORCESTABL
Called from obj:FORCESTABL(0)
Called from TBW06(98)

O clipper que estou usando é o 5.2. Será que tem haver com a versão?


Jeferson.


Ps. como você fez para colar e copia a tela aqui?
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á

Tentando usar o TBrowse

Mensagem por Pablo César »

Jeferson escreveu:No meu apresenta o seguinte erro:

Error BASE/1004 No exported method: FORCESTABL
Called from obj:FORCESTABL(0)
Called from TBW06(98)
Creio eu que o erro está que diz FORCESTABL e o certo é FORCESTABLE

Talvez algum erro de digitação no código original do colega.
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
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Tentando usar o TBrowse

Mensagem por Jairo Maia »

Ok!!!

Mas no seu exemplo está correto. Veja que falta a letra "e" no fonte onde está dando o erro. Acerte exatamente como está no exemplo que você postou: ForceStable() e não ForceStabl()

Código: Selecionar todos

oMybrowser:ForceStable()
Em Tempo:
Enquanto eu fazia o teste o Pablo postou a solução. Legal...
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Jeferson
Usuário Nível 1
Usuário Nível 1
Mensagens: 26
Registrado em: 06 Fev 2013 14:16
Localização: Niteroi/RJ

Tentando usar o TBrowse

Mensagem por Jeferson »

Desculpe, talves eu não tenha feito me entenderem.

O codigo fonte é exatamente esse passado, porém na hora de execução do programa aparece a tela de erro, e nessa tela de erro o "e" é supremido, dando a ideia de que o mesmo tenha sido esquecido de ser digitado. O que não é verdade.

Por isso que eu não entendo o motivo dessa mensagem.

Será que não esta faltando uma Biblioteca que contenha esse comando?


Jairo, me ensina como você colou a tela do DOS aqui, para que eu possa lhe mostrar o erro que dá.


Jeferson.
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á

Tentando usar o TBrowse

Mensagem por Pablo César »

Por isso que eu não entendo o motivo dessa mensagem.
Seria após dar algum comando ou qual é o tipo de ação que gera o erro ?
Será que não esta faltando uma Biblioteca que contenha esse comando?
Não existe biblioteca que possa estar faltando.

Qual é a versão do Clipper que está utilizando ?
Jeferson escreveu:me ensina como você colou a tela do DOS aqui, para que eu possa lhe mostrar o erro que dá.
É só fazer um Print Screen, chamar o Paint, colar e gravar em arquivo. Na sua mensagem que irá postar aqui no fórum, após escrever o seu texto, você pode anexar o arquivo de imagem, após isso é só indicar na linha que deseja disponibilizar a imagem através do botão "colocar na linha" ou seguir estes passos: https://pctoledo.org/forum/viewto ... =40&t=8418
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
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Tentando usar o TBrowse

Mensagem por Jairo Maia »

Jeferson, solucionado o problema da imagem, vou dizer o seguinte:

Não sei porque compilando em Clipper aqui funciona, e você está correto, se houver um erro neste método na mensagem aparecerá mesmo apenas as primeiras 10 letras, uma vez que o clipper só considera as 10 primeiras letras de uma função, método ou variável.

Não sei se vai resolver, mas vou sugerir a seguinte alteração: Trocar TBrowseDB() por TBrowseNew(). Assim, tente trocar a linha 34 do código que você postou que está assim:

Código: Selecionar todos

oMybrowser := TBrowseDB(02,01,23,78)
Ppor esta:

Código: Selecionar todos

oMybrowser := TBrowseNew(02,01,23,78)
Veja se vai funcionar. Aliás, não entendo porque meus testes com o Clipper 5.2e funciona de ambas formas, mas tente alterar e veja se funciona.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Jeferson
Usuário Nível 1
Usuário Nível 1
Mensagens: 26
Registrado em: 06 Fev 2013 14:16
Localização: Niteroi/RJ

Tentando usar o TBrowse

Mensagem por Jeferson »

Infelizmente não posso abrir o servidor de imagem para enviar a imagem para que vocês possam ver.
Mais Jairo, infelizmente não funcionou.

O erro que dá é baseado neste topico:

BASE/1004 método n exportados

Explicação: Este erro pode ocorrer devido às seguintes razões:

1. Você enviou uma mensagem usando o operador de envio (:), mas o operando da esquerda
não era uma referência a um objeto, ou o objeto receptor não tem
método com o nome especificado.

2. Você chamou a função eval () e não passou de um bloco de código como o
primeiro argumento.

3. Você especificou um valor diferente do que um bloco de código em um contexto em que um
bloco de código foi exigido.

Ação: Algumas sugestões para resolver o problema são:

1. Certifique-se de que o valor a ser operada é do próprio
tipo ou classe.

2. Se o erro ocorre no operador de envio (:), certifique-se da mensagem
é uma das mensagens definidas para a classe.

3. Se o método que falta é "EVAL", certifique-se de que blocos de código ter sido
fornecido quando necessário.

Veja também: "Conceitos básicos" capítulo na programação e Utilitários
Guide, "Language Reference" capítulo do Guia de ReferênciaDesfazer ediçõesAlpha

Caso vocês tenham alguma ideia sobre isso gostaria que a mesma fosse compartilhada comigo.


Grato.



Jeferson.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Tentando usar o TBrowse

Mensagem por alxsts »

Olá!

O método oMybrowser:ForceStable() é o mesmo que

Código: Selecionar todos

        DO WHILE !oMybrowser:stabilize()
        ENDDO
Troque que vai funcionar. Mas é muito estranho. Qual a versão Clipper que você está utilizando? Esse método apareceu a partir do Clipper 5.2. Se não me engano, antes disso ele era um pseudo-método, uma tradução do pré-processador. Mas não consegui achar nada a respeito.
[]´s
Alexandre Santos (AlxSts)
Jeferson
Usuário Nível 1
Usuário Nível 1
Mensagens: 26
Registrado em: 06 Fev 2013 14:16
Localização: Niteroi/RJ

Tentando usar o TBrowse

Mensagem por Jeferson »

Valeu pela ajuda, pessoal.

Eu, simplesmente, desabilitei a linha é o programa rodou.

Um excelente final de semana a todos e obrigado pela atenção.

Abraços.


Jeferson.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Tentando usar o TBrowse

Mensagem por Jairo Maia »

Olá Jeferson,

Que bom!!! :-Y

Jeferson, fiz um teste pela manhã sem esse método com seu exemplo e funcionou normal. Quase sugeri para você excluí-lo, mas confesso que não tive segurança suficiente para isso, e você por si o fez e funcionou. Parabéns!

Porém, Tanto o colega Pablo quanto o colega Alexandre (alxsts), lhe fizeram uma pergunta que acho que você poderia nos responder: Qual versão do Clipper você está usando? Essa resposta seria interessante a todos os colegas em consultas futuras. Caso tenha dúvida em dizer, nos fale também.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Jeferson
Usuário Nível 1
Usuário Nível 1
Mensagens: 26
Registrado em: 06 Fev 2013 14:16
Localização: Niteroi/RJ

Tentando usar o TBrowse

Mensagem por Jeferson »

a Versão que estou utilizando é a 5.01.

Jeferson.
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á

Tentando usar o TBrowse

Mensagem por Pablo César »

jeferson, o meu conselho é livre-se dessa versão. Pelo que algo lembro, ela possui bugs nessa versão. A ultima versão mais estável do Clipper é 5.2e, você pode baixar daqui da seção de Downloads em:

https://pctoledo.org/forum/fileba ... t=c&page=1
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.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Tentando usar o TBrowse

Mensagem por alxsts »

Olá!
alxsts escreveu: Esse método apareceu a partir do Clipper 5.2
Confirmei esta informação. No 5.01 não existe. Tem que usar o Do While ... EndDo que mencionei acima.
[]´s
Alexandre Santos (AlxSts)
Responder