Boa noite,
Para filtrar no Tbrowse eu mantinha um indice pela ordem desejada e usava:
Estoque->( OrdSetFocus("I01") )
Estoque->( DbSeek(cCodCli)) // acha o primeiro
bFilter := {|x| Estoque->CodCli # cCodCli }
oBrowse:SkipBlock={|nSkip| dbSkipBlockFilter( nSkip, oBrowse, bFilter ) }
No codigo abaixo esta me dando erro quando clico com o mouse no
Scroll para descer ou PageDown, etc..
Pode-se ver na listagem do erro que esta em loop ( linha 2149).
As vezes mostra a mensagem "Muitas chamadas recursivas no controle de Errros"
O codigo abaixo foi baseado no exemplo \hwgui\samples\browsefilter.prg que tambem dá os mesmos erros.
Qual a mameira correta de se usar o filtro no HwGui??
Grato,
v_cez@...
Listagem do codigo e o erro gerado:
INIT DIALOG oDlg CLIPPER NOEXIT TITLE cTitle ;
AT 3,32 SIZE 780,360 FONT oFontDlg ;
STYLE DS_CENTER+WS_VISIBLE+WS_POPUP+WS_VISIBLE+WS_CAPTION+WS_SYSMENU
SELECT Estoque
Estoque->( OrdSetFocus('I01') )
@ 005,005 BROWSE oBrowse DATABASE OF oDlg ;
SIZE 770,300 FONT oFontBrw ;
STYLE WS_VSCROLL + WS_HSCROLL ;
FIRST {|| Estoque->(DbSeek( cCodCli )) } ;
WHILE {|| Estoque->CodCli == cCodCli } ;
FOR {|| Estoque->CodCli == cCodCli } ;
ON KEYDOWN {|o,Key| Brw_Key(o,Key,oBtn1) } ;
ON CLICK {|o,Key| Brow_Key(o,Key,oBtn1) }
oBrowse:nLastRecordFilter := 0
oBrowse:nFirstRecordFilter := 0
oBrowse:Alias := "Estoque"
oBrowse:lEsc := .T.
oBrowse:Refresh(.T.)
/// erro gerado ///
Error BASE/1004 Class: 'NIL' has no exported method:
NFIRSTRECORDFILTER
Called from ->NFIRSTRECORDFILTER(0)
Called from ->FLTGOTOP(2149)
Called from hbrowse.prg->(b)HBROWSE:INITBRW(618)
Called from hbrowse.prg->VSCROLLPOS(2024)
Called from hbrowse.prg->HBROWSE:LINEDOWN(1357)
Called from hbrowse.prg->HBROWSE:DOVSCROLL(1215)
Called from hbrowse.prg->HBROWSE:ONEVENT(304)
Called from ->HWG_DLGBOXINDIRECT(0)
Called from hdialog.prg->HDIALOG:ACTIVATE(156)
Called from ->ERRORPREVIEW(154)
Called from ->DEFERROR(79)
Called from errorsys.prg->(b)ERRORSYS(20)
Called from ->NFIRSTRECORDFILTER(0)
Called from ->FLTGOTOP(2149)
Called from hbrowse.prg->(b)HBROWSE:INITBRW(618)
Called from hbrowse.prg->VSCROLLPOS(2024)
Called from hbrowse.prg->HBROWSE:LINEDOWN(1357)
Called from hbrowse.prg->HBROWSE:DOVSCROLL(1215)
Called from hbrowse.prg->HBROWSE:ONEVENT(304)
Called from ->HWG_DLGBOXINDIRECT(0)
Called from hdialog.prg->HDIALOG:ACTIVATE(156)
Called from ->ERRORPREVIEW(154)
Called from ->DEFERROR(79)
Called from errorsys.prg->(b)ERRORSYS(20)
Called from ->NFIRSTRECORDFILTER(0)
Called from ->FLTGOTOP(2149)
Called from hbrowse.prg->(b)HBROWSE:INITBRW(618)
Called from hbrowse.prg->VSCROLLPOS(2024)
Called from hbrowse.prg->HBROWSE:LINEDOWN(1357)
Called from hbrowse.prg->HBROWSE:DOVSCROLL(1215)
Called from hbrowse.prg->HBROWSE:ONEVENT(304)
Called from ->HWG_DLGBOXINDIRECT(0)
Called from hdialog.prg->HDIALOG:ACTIVATE(156)
Called from ->ERRORPREVIEW(154)
Called from ->DEFERROR(79)
Called from errorsys.prg->(b)ERRORSYS(20)
Called from ->NFIRSTRECORDFILTER(0)
Called from ->FLTGOTOP(2149)
Called from hbrowse.prg->(b)HBROWSE:INITBRW(618)
Called from hbrowse.prg->VSCROLLPOS(2024)
Called from hbrowse.prg->HBROWSE:LINEDOWN(1357)
Called from hbrowse.prg->HBROWSE:DOVSCROLL(1215)
Called from hbrowse.prg->HBROWSE:ONEVENT(304)
Called from ->HWG_DLGBOXINDIRECT(0)
Called from hdialog.prg->HDIALOG:ACTIVATE(156)
Called from ->ERRORPREVIEW(154)
Called from ->DEFERROR(79)
Called from errorsys.prg->(b)ERRORSYS(20)
Called from ->NFIRSTRECORDFILTER(0)
Called from ->FLTGOTOP(2149)
Called from hbrowse.prg->(b)HBROWSE:INITBRW(618)
Called from hbrowse.prg->VSCROLLPOS(2024)
Called from hbrowse.prg->HBROWSE:LINEDOWN(1357)
Called from hbrowse.prg->HBROWSE:DOVSCROLL(1215)
Called from hbrowse.prg->HBROWSE:ONEVENT(304)
Called from ->HWG_DLGBOXINDIRECT(0)
Called from hdialog.prg->HDIALOG:ACTIVATE(156)
Called from ->ERRORPREVIEW(154)
Called from ->DEFERROR(79)
Called from errorsys.prg->(b)ERRORSYS(20)
Called from ->NFIRSTRECORDFILTER(0)
Called from ->FLTGOTOP(2149)
Called from hbrowse.prg->(b)HBROWSE:INITBRW(618)
Called from hbrowse.prg->VSCROLLPOS(2024)
Called from hbrowse.prg->HBROWSE:LINEDOWN(1357)
Called from hbrowse.prg->HBROWSE:DOVSCROLL(1215)
Called from hbrowse.prg->HBROWSE:ONEVENT(304)
Called from ->HWG_DLGBOXINDIRECT(0)
Called from hdialog.prg->HDIALOG:ACTIVATE(156)
Called from ->ESTOQ(275)
Called from PRG100.PRG->(b)PRG100(58)
Called from hdialog.prg->DLGCOMMAND(341)
Called from hdialog.prg->(b)(_INITSTATICS00003)(0)
Called from hdialog.prg->HDIALOG:ONEVENT(192)
Called from ->HWG_DLGBOXINDIRECT(0)
Called from hdialog.prg->HDIALOG:ACTIVATE(156)
Called from PRG100.PRG->PRG100(72)
Called from PRG001.prg->(b)MAIN(37)
Called from ->ONCOMMAND(439)
Called from hwindow.prg->(b)HMAINWINDOW(164)
Called from hwindow.prg->HMAINWINDOW:ONEVENT(243)
Called from ->HWG_ACTIVATEMAINWINDOW(0)
Called from hwindow.prg->HMAINWINDOW:ACTIVATE(232)
Called from PRG001.prg->MAIN(79)
HwGUI 2.16 xHarbour build 0.99.70 Intl. (SimpLex)
Date:20/05/08
Time:13:36:55
Como usar Filtro no Browse???
Moderador: Moderadores
Re: Como usar Filtro no Browse???
Boa noite,
Em vez do antigo procedimento acima, estou usando:
DbSetFilter( {|| Estoque->CodCli == cCodCli }, 'Estoque->CodCli == cCodCli' )
Por enquanto tá funcionando!
v_cez@yahoo.com.br
Em vez do antigo procedimento acima, estou usando:
DbSetFilter( {|| Estoque->CodCli == cCodCli }, 'Estoque->CodCli == cCodCli' )
Por enquanto tá funcionando!
v_cez@yahoo.com.br
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Como usar Filtro no Browse???
Olá Cezar,
Se você usa CDX é mais aconselhavel você ter um indice pelo campo CODCLI e usar o ORDSCOPE() no lugar do SET FILTER.
Se você usa CDX é mais aconselhavel você ter um indice pelo campo CODCLI e usar o ORDSCOPE() no lugar do SET FILTER.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
