.
Enviado: 25 Fev 2005 17:51
.
Código: Selecionar todos
/*Defino a Matriz */
anot2 := {}
/*Nesse Exemplo eu estou alimentando a matriz com
os dados do meu banco de notas fiscais.... */
arqnot->(dbseek(cCliente))
while arqnot->CLIENTE==cCliente .and. !arq_not->(eof())
aadd(anot2,{arqnot->NUMNOT,arqnot->arqnot->QTDNOT})
arqnot->(dbskip())
enddo
/*Verifico se a Matriz possue conteúdo */
if len(anot2) > 0
/*Crio o Tbrowse */
oCorpo2 := tbrowsenew(03, 03, 12, 73)
/*Para controlar a posição da array */
nPoint := 1
/*Cores e Molduras do Tbrowse */
oCorpo2:colorspec := "w+/bg,n/w,n,n,w/b,r/b,r/bg"
oCorpo2:colsep := chr (032) + chr (179) + chr (032)
oCorpo2:headsep := chr (196) + chr (194) + chr (196)
oCorpo2:footsep := chr (196) + chr (193) + chr (196)
/* Para controlar a navegação*/
oCorpo2:gotopblock := {|| nPoint := 1 }
oCorpo2:gobottomblock := {|| nPoint := len (anot2)}
oCorpo2:skipblock := {|n| arrayskiper (n, @nPoint, len (anot2))}
/* defino as colunas */
oCol1 := tbcolumnnew ("Nota", {|x| iif (x <> nil, anot2[nPoint,1] := x, anot2[nPoint,1])})
oCol2 := tbcolumnnew ("Qtde", {|x| iif (x <> nil, anot2[nPoint,2] := x, anot2[nPoint,2])})
/* crio browse com as colunas definidas... */
oCorpo2:addcolumn(oCol1)
oCorpo2:addcolumn(oCol2)
while ( .t. )
setcursor (0)
while ( !oCorpo2:stabilize () )
enddo
nTecla := inkey (0)
libera()
do case
case ( nTecla == K_ESC )
exit
case ( nTecla == K_DOWN )
oCorpo2:down ()
case ( nTecla == K_UP )
oCorpo2:up ()
case ( nTecla == K_LEFT )
oCorpo2:left ()
case ( nTecla == K_RIGHT )
oCorpo2:right ()
case ( nTecla == K_PGUP )
oCorpo2:pageup ()
case ( nTecla == K_PGDN )
oCorpo2:pagedown ()
case ( nTecla == K_CTRL_PGUP )
oCorpo2:gotop ()
case ( nTecla == K_CTRL_PGDN )
oCorpo2:gobottom ()
endcase
enddo
else // Se não achar nota para esse cliente...
tone (3000,2)
? "Não existem notas emitidas para esse cliente..."
inkeY(2)
endif
/***********
*
* 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 )