Erro no Tbrowse
Moderador: Moderadores
Erro no Tbrowse
Pessoal,
Estou com um erro na chamada deste setkey :
oTBrowse:setKey(K_ENTER, {|| DiasAtraso("APA01")})
O Erro:
Error BASE/1004 Metodo nao exportado: HB_SETKEY
Called from ->TBROWSE:HB_SETKEY(0)
A versão do harbour é 3.4
Estou com um erro na chamada deste setkey :
oTBrowse:setKey(K_ENTER, {|| DiasAtraso("APA01")})
O Erro:
Error BASE/1004 Metodo nao exportado: HB_SETKEY
Called from ->TBROWSE:HB_SETKEY(0)
A versão do harbour é 3.4
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Erro no Tbrowse
Tem certeza que é nessa parte?
Dá uma conferida nas linhas de erro.
A mensagem se refere a não existir hb_SetKey() como método, mas nessa linha está usando :SetKey() então não parece ser nela.
Procure nos fontes :hb_SetKey
Dá uma conferida nas linhas de erro.
A mensagem se refere a não existir hb_SetKey() como método, mas nessa linha está usando :SetKey() então não parece ser nela.
Procure nos fontes :hb_SetKey
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Erro no Tbrowse
Quintas,
O meu código parece estar correto, mas pode haver algum erro na chamada do setkey veja:
Compilado com harbour 3.4
Olhando o fonte tbrowse.prg na pasta src\rtl o método SetKey está aqui.
METHOD setKey( nKey, bBlock ) CLASS TBrowse
LOCAL bReturn
LOCAL nPos
O meu código parece estar correto, mas pode haver algum erro na chamada do setkey veja:
Compilado com harbour 3.4
Código: Selecionar todos
#include "inkey.ch"
#include "TBrowse.ch"
oTBrowse := TBrowseDb(nLinI, nColI, nLinF, nColF)
oColuna := TBColumnNew( "Mˆs/Ano", {|| SubStr(APA01->AnoMes, 3, 2)+APA01->NovoAno})
oColuna:picture := "@R 99/9999"
oTBrowse:addColumn( oColuna )
oColuna := TBColumnNew( "T", {|| APA01->t_guia})
oColuna:picture := "X"
oTBrowse:addColumn( oColuna )
oColuna := TBColumnNew( "S", {|| APA01->loc_pag})
oColuna:picture := "X"
oTBrowse:addColumn( oColuna )
oColuna := TBColumnNew(" Vencto. ", {|| " "+HB_DTOC(APA01->d_venc,"DDMMYY")})
oColuna:picture := "@R 999/99/99 "
oTBrowse:addColumn( oColuna )
oColuna := TBColumnNew( "Vlr.Total", {|| APA01->vl_guia})
//oColuna:picture := "@E 999,999,999.99"
oColuna:picture := "@E 999,999.99"
oTBrowse:addColumn( oColuna )
oColuna := TBColumnNew( "Vlr.Pago", {|| APA01->vl_pgto})
oColuna:picture := "@E 999,999.99"
oTBrowse:addColumn( oColuna )
oColuna := TBColumnNew( "Acr.Red.", {|| APA01->acr_red})
oColuna:picture := "@E 999,999.99"
oTBrowse:addColumn( oColuna )
oColuna := TBColumnNew( "Data Pgt.", {|| " "+HB_DTOC(APA01->d_pgto,"DDMMYY")})
oColuna:picture := "@R 999/99/99 "
//oColuna:colorBlock := {||IF(Empty(d_pgto) .AND. (date()-d_venc) > 30, {4, 1}, {1, 1})}
oTBrowse:addColumn( oColuna )
oColuna := TBColumnNew( "Nr.do Banco", {|| APA01->nr_banco})
oColuna:picture := "@R 999999999999/9"
oTBrowse:addColumn( oColuna )
oColuna := TBColumnNew( "CB", {|| APA01->em_cobr})
oColuna:picture := "X"
oTBrowse:addColumn( oColuna )
oColuna := TBColumnNew( "EC", {|| APA01->ent_conf})
oColuna:picture := "X"
oTBrowse:addColumn( oColuna )
oColuna := TBColumnNew( "BS", {|| APA01->baix_sol})
oColuna:picture := "X"
oTBrowse:addColumn( oColuna )
oColuna := TBColumnNew( "BC", {|| APA01->baix_conf})
oColuna:picture := "X"
oTBrowse:addColumn( oColuna )
oColuna := TBColumnNew( "Pc.Multa", {|| APA01->pc_multa})
oColuna:picture := "@E 99.99"
oTBrowse:addColumn( oColuna )
oColuna := TBColumnNew( "RD", {|| APA01->rc_dg_ass})
oColuna:picture := "X"
oTBrowse:addColumn( oColuna )
FOR I:=1 TO oTBrowse:ColCount
oTBrowse:GetColumn(I):colorBlock := {||IF(Empty(APA01->d_pgto) .AND. (Date()-APA01->d_venc) > 30,;
{1, 1}, {1, 1})}
NEXT
oTBrowse:setKey(K_F12, {|| DiasAtraso("APA01")})
//... segue o restante do código.
METHOD setKey( nKey, bBlock ) CLASS TBrowse
LOCAL bReturn
LOCAL nPos
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Erro no Tbrowse
Outra coisa, o método:
METHOD setKey( nKey, bBlock ) // get/set a code block associated with an Inkey() value
Está dentro deste ifdef
#ifdef HB_COMPAT_C53
METHOD setKey( nKey, bBlock ) // get/set a code block associated with an Inkey() value
Está dentro deste ifdef
#ifdef HB_COMPAT_C53
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Erro no Tbrowse
O método SetKey está no tbrowse dentro do ifdef, mas onde esse define #ifdef HB_COMPAT_C53 é atribuido?
Código: Selecionar todos
#ifdef HB_COMPAT_C53
#ifdef HB_BRW_STATICMOUSE
VAR mRowPos AS INTEGER INIT 0 // numeric value indicating the data row of the mouse position
VAR mColPos AS INTEGER INIT 0 // numeric value indicating the data column of the mouse position
#else
METHOD mRowPos SETGET // numeric value indicating the data row of the mouse position
METHOD mColPos SETGET // numeric value indicating the data column of the mouse position
#endif
METHOD setStyle( nStyle, lNewValue ) // maintains a dictionary within an object
METHOD setKey( nKey, bBlock ) // get/set a code block associated with an Inkey() value
METHOD applyKey( nKey ) // evaluate the code block associated with given Inkey() value
METHOD hitTest( mRow, mCol ) // indicate position of mouse cursor relative to TBrowse
METHOD nRow SETGET // screen row number for the actual cell
METHOD nCol SETGET // screen column number for the actual cell
METHOD border( cBorder ) SETGET // get/set character value used for TBrowse are border
METHOD message( cMessage ) SETGET // get/set character string displayed on status bar
#endif
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Erro no Tbrowse
Vamos recomeçar:
Deu erro em hb_SetKey() porque ele não existe.
Se não existe hb_SetKey(), então olhe o fonte/linha anterior do erro, pra ver aonde foi chamado tbrowse:hb_SetKey()
Código: Selecionar todos
Error BASE/1004 Metodo nao exportado: HB_SETKEY
Called from ->TBROWSE:HB_SETKEY(0)
Se não existe hb_SetKey(), então olhe o fonte/linha anterior do erro, pra ver aonde foi chamado tbrowse:hb_SetKey()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Erro no Tbrowse
Olá Alexandre,
Se você usar isso nas versões 3.0 ou 3.2, isso apenas é ignorado, porém, a função DiasAtraso("APA01") não será chamada se pressionar F12. Ou seja não será atribuido esa chamada a tecla F12 no codblock SetKey. Esse método não é exportável.
Provavelmente na versão 3.4 isso ficou mais exigente, provocando o erro em tempo de execução. Se a idéia é pegar o conteúdo antigo da variável F12 para restaurá-la depois, precisa usar uma variável Local ou outra para restaurar depois:Dessa forma a tecla F12 irá funcionar chamando a função DiasAtraso("APA01"), e na variável nk_f12 estará o valor antigo da F12 para restaurar depois:
Código: Selecionar todos
oTBrowse:setKey(K_F12, {|| DiasAtraso("APA01")})Provavelmente na versão 3.4 isso ficou mais exigente, provocando o erro em tempo de execução. Se a idéia é pegar o conteúdo antigo da variável F12 para restaurá-la depois, precisa usar uma variável Local ou outra para restaurar depois:
Código: Selecionar todos
nk_f12:=setKey(K_F12, {|| DiasAtraso("APA01")})Código: Selecionar todos
setKey(K_F12, nk_f12 )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)
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)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Erro no Tbrowse
Jairo, ele já disse que é Harbour 3.4
Mas eu me confundi com a mensagem de erro.
É o que mencionei no último post, tem que ver o log de erro completo, olhando aonde foi a chamada que causou esse erro.
O erro foi justamente na chamada anterior a essa.
Mas eu me confundi com a mensagem de erro.
É o que mencionei no último post, tem que ver o log de erro completo, olhando aonde foi a chamada que causou esse erro.
O erro foi justamente na chamada anterior a essa.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Erro no Tbrowse
Alexandre, neste caso, resta saber se na compilação dos fontes que estão na pasta \SRC\RTL\ foi definido o #define HB_COMPAT_C53.asimoes escreveu:O método SetKey está no tbrowse dentro do ifdef, mas onde esse define #ifdef HB_COMPAT_C53 é atribuido?
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Erro no Tbrowse
Quintas,
O erro:
Error BASE/1004 Metodo nao exportado: HB_SETKEY
Called from ->TBROWSE:HB_SETKEY(0)
Called from A040300.PRG->DBDATA(242)
Called from A040300.PRG->A040300(131)
Called from ->(b)MAIN(664)
Called from ->MAIN(664)
O erro:
Error BASE/1004 Metodo nao exportado: HB_SETKEY
Called from ->TBROWSE:HB_SETKEY(0)
Called from A040300.PRG->DBDATA(242)
Called from A040300.PRG->A040300(131)
Called from ->(b)MAIN(664)
Called from ->MAIN(664)
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Erro no Tbrowse
Achei isto no changelog
* src/rtl/tbrowse.prg
! fixed compilation with HB_BRW_STATICMOUSE
! do not cover dummy ivar with HB_COMPAT_C53 macro
* minor simplification
Uma alternativa , estou resolvendo assim no meu código:
oTBrowse:cargo:={|| DiasAtraso("APA01")}
DO CASE
CASE ( nTecla == K_F12 )
Eval(oTBrowse:cargo )
* src/rtl/tbrowse.prg
! fixed compilation with HB_BRW_STATICMOUSE
! do not cover dummy ivar with HB_COMPAT_C53 macro
* minor simplification
Uma alternativa , estou resolvendo assim no meu código:
oTBrowse:cargo:={|| DiasAtraso("APA01")}
DO CASE
CASE ( nTecla == K_F12 )
Eval(oTBrowse:cargo )
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Erro no Tbrowse
Até testei aqui pra ver se não estava me confundindo.
Consegui gerar esse erro.
Pra gerar esse erro, fiz isto:
Chamei :hb_SetKey() que não existe, ao invés de :SetKey()
Então dê uma olhada em : Called from A040300.PRG->DBDATA(242)
Consegui gerar esse erro.
Código: Selecionar todos
Error BASE/1004 No exported method: HB_SETKEY
Called from TBROWSE:HB_SETKEY(0)
Called from FAZBROWSE(49)
Called from MAIN(26)
Código: Selecionar todos
FOR nCont = 1 TO Len( oKeys )
oBrowse:hb_SetKey( oKeys[ nCont, 1 ], oKeys[ nCont, 2 ] )
NEXT
Então dê uma olhada em : Called from A040300.PRG->DBDATA(242)
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Erro no Tbrowse
Toledo,
O define HB_COMPAT_C53 é automático ou tem que ser informado na compilação e como?
O define HB_COMPAT_C53 é automático ou tem que ser informado na compilação e como?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Erro no Tbrowse
Não, acho que ele se confundiu como eu no início. Confundi hb_SetKey() com SetKey().
Aquela coisa do Harbour acrescentar HB_ no nome das funções...
Aquela coisa do Harbour acrescentar HB_ no nome das funções...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Erro no Tbrowse
Outra informação que eu achei em tbrowse.txt
This functions is Compatible with CA-Cl*pper 5.2. The applykey() and
SetKey() methods are only visible if HB_COMPAT_C53 is defined.
A pergunta é este define está dentro da lib só pode ser vista na compilação do harbour
This functions is Compatible with CA-Cl*pper 5.2. The applykey() and
SetKey() methods are only visible if HB_COMPAT_C53 is defined.
A pergunta é este define está dentro da lib só pode ser vista na compilação do harbour
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
