BOA tarde
tenho a exibição de um dbf em um Browser OK
Vários vendedores estarão alimentando este dbf.
como fazer o refreshall() deste browser SEM que precise mexer nas teclas ????
+++ abaixo tambem tentei com o Timer
bcrapedc:= TBrowseDB( li+2, ci+1, lf-2, cf-1) // coordenada do tbrowse
column := TBColumnNew( "V", {||_verifica_contagem()})
bcrapedc:addColumn( column )
column := TBColumnNew( "C¢digo", {|| codigo} )
bcrapedc:addColumn( column )
column := TBColumnNew( "Cliente", {||_crapedc_verifica_nome()})
bcrapedc:addColumn( column )
do WHILE .T.
xforcaida = .f.
IF ( bcrapedc:colPos <= bcrapedc:freeze )
bcrapedc:colPos := bcrapedc:freeze + 1
ENDIF
_crapedc_forcestable( bcrapedc )
bcrapedc:hilite()
IF ( bcrapedc:stable )
nKey := INKEY(0)
ENDIF
salva_recno_browser = recno()
IF !_crapedc_tbmovecursor( bcrapedc, nKey )
IF ( nKey == K_ESC )
SCROLL()
EXIT
endif
xtotal = 0
if lastkey() = 5 .or. ;
lastkey() = 24 .or. ;
lastkey() = 18 .or. ;
lastkey() = 3
if salva_recno_browser = recno()
loop
endif
endif
if lastkey() = -45
ptaskmgr() && Control + F12
endif
if lastkey() = 1015
skip
bcrapedc:configure()
bcrapedc:refreshall()
bcrapedc:refreshcurrent()
_crapedc_forcestable( bcrapedc )
elseif nKey = 1014
skip -1
bcrapedc:configure()
bcrapedc:refreshall()
bcrapedc:refreshcurrent()
_crapedc_forcestable( bcrapedc )
end
if lastkey() <> 1002
if pmax = .t.
salva__crapedc_db_crapedc:=savescreen(00,00,wvw_maxmaxrow(),wvw_maxmaxcol())
else
salva__crapedc_db_crapedc:=savescreen(00,00,24,80)
endif
_crapedc__okkdD()
devo_enviar_mesa_para_plugfoods = .f.
_crapedc_db_crapedc() && funcao p/ auxiliar a debdit()
if pmax = .t.
restscreen(00,00,wvw_maxmaxrow(),wvw_maxmaxcol(),salva__crapedc_db_crapedc)
else
restscreen(00,00,24,80,salva__crapedc_db_crapedc)
endif
_crapedc__prodecide()
endif
if xforcaida = .t.
SCROLL()
EXIT
endif
_crapedc_draw_tela()
bcrapedc:configure()
bcrapedc:refreshall()
bcrapedc:refreshcurrent()
para_plugfoods = .f.
else
msgstop("else "+pempresa+pfilial+crpedc->codigo)
ENDIF
END
*********************** timer **************
Tentei com o WVW_SETTIMER(0,1000*val(ttime_senha)) && X segundos
+++ como ja uso em outro prg esta sempre indo para a MESMA funcao usada no primeiro antigo
ai coloquei um case para diferenciar ++ da PAU ao fazer o bcrapedc:refreshall()
Teria como ter DUAS funcoes de controle do TIMER ? (pode ser que de PAU por estarem em prg diferentes)
pelo visto pega a primiera funcao começando com WVW_TIMER NAO importando se o nome das funçoes estao diferentes
FUNCTION WVW_TIMER_crapeda( nWindow, hWnd, message, wParam, lParam )
do case
case pprograma='crapeda'
select CRpeda
rec_atual_timer = recno()
xmodificou_mesa_pelo_app = .f.
xincluiu_mesa_pelo_app = .f.
ler_pedidos_csv()
select CRpeda
pprograma='crapeda'
b:configure()
b:refreshall()
b:refreshcurrent()
if xmodificou_mesa_pelo_app = .T.
select CRpeda
go rec_atual_timer
if xincluiu_mesa_pelo_app = .T.
keyboard chr(30) && seta para TOP Control + PgUp
select CRpeda
go top
b:configure()
b:refreshall()
b:refreshcurrent()
_crapeda_forcestable( b )
else
b:configure()
b:refreshall()
b:refreshcurrent()
_crapeda_forcestable( b )
endif
endif
return(2)
case pprograma='crapedc'
select crpedc
go top
bcrapedc:configure()
bcrapedc:refreshall()
bcrapedc:refreshcurrent()
*_crapeda_forcestable( bcrapedc )
return(2)
endcase