Ele monta e abre certo, só que as teclas de movimentação não funcionam, fica como se estive-se congelado.
Código: Selecionar todos
#include "inkey.ch"
function vendas()
Private aTemp:={},nElementos,oMyBrowser,nPoint,n
telven()
aadd(aTemp,{"1234","GILSON PAULO SCHUCK","A","A","A","A","A","A","A","A","A","A","A","A","A"})
aadd(aTemp,{"1235","CLARA PASSERA","A","A","A","A","A","A","A","A","A","A","A","A","A"})
/* Crio o Tbrowse */
oMyBrowser:= tbrowsenew(03, 01, 18, 78)
/* Para controlar a posicao do array */
nPoint:= 1
/* Cores e Molduras do Tbrowse */
oMyBrowser:colorspec := "w+/bg,n/w,n,n,w/b,r/b,r/bg"
oMyBrowser:colsep := chr(32) + chr(179) + chr(32)
oMyBrowser:headsep := chr(196) + chr(194) + chr(196)
oMyBrowser:footsep := chr(196) + chr(193) + chr(196)
/* Para controlar a navegacao */
oMyBrowser:gotopblock := { || nPoint:= 1 }
oMyBrowser:gobottomblock := { || nPoint:= len(aTemp) }
oMyBrowser:skipblock := { |n| arrayskiper (n, @nPoint, len(aTemp)) }
/* Defino as colunas */
oCol01 := tbcolumnnew ("Codigo ",{ |x| iif ( x <> nil, aTemp[nPoint,01]:= x,aTemp[nPoint,01])})
oCol02 := tbcolumnnew ("Descricao ",{ |x| iif ( x <> nil, aTemp[nPoint,02]:= x,aTemp[nPoint,02])})
oCol03 := tbcolumnnew ("Complemento ",{ |x| iif ( x <> nil, aTemp[nPoint,03]:= x,aTemp[nPoint,03])})
oCol04 := tbcolumnnew ("Quantidade ",{ |x| iif ( x <> nil, aTemp[nPoint,04]:= x,aTemp[nPoint,04])})
oCol05 := tbcolumnnew ("Preco ",{ |x| iif ( x <> nil, aTemp[nPoint,05]:= x,aTemp[nPoint,05])})
oCol06 := tbcolumnnew ("Total ",{ |x| iif ( x <> nil, aTemp[nPoint,06]:= x,aTemp[nPoint,06])})
oCol07 := tbcolumnnew ("Entrega ",{ |x| iif ( x <> nil, aTemp[nPoint,07]:= x,aTemp[nPoint,07])})
oCol08 := tbcolumnnew ("Tipo ",{ |x| iif ( x <> nil, aTemp[nPoint,08]:= x,aTemp[nPoint,08])})
oCol09 := tbcolumnnew ("Cliente ",{ |x| iif ( x <> nil, aTemp[nPoint,09]:= x,aTemp[nPoint,09])})
oCol10 := tbcolumnnew ("Requisicao ",{ |x| iif ( x <> nil, aTemp[nPoint,10]:= x,aTemp[nPoint,10])})
oCol11 := tbcolumnnew ("Data ",{ |x| iif ( x <> nil, aTemp[nPoint,11]:= x,aTemp[nPoint,11])})
oCol12 := tbcolumnnew ("Local ",{ |x| iif ( x <> nil, aTemp[nPoint,12]:= x,aTemp[nPoint,12])})
oCol13 := tbcolumnnew ("Motivo ",{ |x| iif ( x <> nil, aTemp[nPoint,13]:= x,aTemp[nPoint,13])})
oCol14 := tbcolumnnew ("Reduzido ",{ |x| iif ( x <> nil, aTemp[nPoint,14]:= x,aTemp[nPoint,15])})
oCol15 := tbcolumnnew ("Localiza ",{ |x| iif ( x <> nil, aTemp[nPoint,15]:= x,aTemp[nPoint,15])})
/* Crio o browse com as colunas definidas.. */
oMyBrowser:addcolumn(oCol01)
oMyBrowser:addcolumn(oCol02)
oMyBrowser:addcolumn(oCol03)
oMyBrowser:addcolumn(oCol04)
oMyBrowser:addcolumn(oCol05)
oMyBrowser:addcolumn(oCol06)
oMyBrowser:addcolumn(oCol07)
oMyBrowser:addcolumn(oCol08)
oMyBrowser:addcolumn(oCol09)
oMyBrowser:addcolumn(oCol10)
oMyBrowser:addcolumn(oCoL11)
oMyBrowser:addcolumn(oCol12)
oMyBrowser:addcolumn(oCol13)
oMyBrowser:addcolumn(oCol14)
oMyBrowser:addcolumn(oCol15)
do while .t.
while (! oMybrowser:stabilize())
nkey := inkey()
if nkey != 0 && Pressionada uma tecla durante a estabilização
exit
endif
enddo
if oMyBrowser:Stable && Checa se o objeto está estável
inkey(0)
endif
*-------------------------------------
* Controle das teclas pressionadas
*-------------------------------------
if nkey == K_UP
oMyBrowser:up()
elseif nkey == K_DOWN
oMybrowser:down()
elseif nkey == K_LEFT
oMybrowser:left()
elseif nkey == K_RIGHT
oMybrowser:right()
elseif nkey == K_HOME
oMybrowser:home()
elseif nkey == K_END
oMybrowser:end()
elseif nkey == K_PGUP
oMybrowser:pageUp()
elseif nkey == K_PGDN
oMybrowser:pageDown()
elseif nkey == K_CTRL_PGUP
oMybrowser:goTop()
elseif nkey == K_CTRL_PGDN
oMybrowser:goBottom()
elseif nkey == K_CTRL_HOME
oMybrowser:panHome()
elseif nkey == K_CTRL_END
oMybrowser:panEnd()
elseif nkey == K_CTRL_LEFT
oMybrowser:panLeft()
elseif nkey == K_CTRL_RIGHT
oMybrowser:panRight()
elseif nkey == K_ESC
exit
endif
enddo
cls
quit
Return(nil)
*****************
* ArraySkiper()
* Controla o posicionamento do browse no array
* by dudu_xbase
*****************
Function ArraySkiper(n,nPointer,nElementos)
Local nSalvo:= nPointer
if ( n > 0 )
nPointer := min (nPointer + n, nElementos)
else
nPointer := max (1, nPointer + n)
endif
Return(nPointer-nSalvo)
