ERRO NO TBROWSE COM ARRAY
Enviado: 11 Mar 2005 11:30
Amigo(s)! vc's poderiam me ajudar ? :xau
Estou tentando usar pela 1 vez o tbrowse, assim sendo realizei um teste com este peq exemplo q o nosso irmão Dudu postou aqui no forum, mas infelizmente ñ conseguir até agora q funcione.
:(Neg
Está dando um erro: BASE/1132 (BOUND ERROR: array access)
Agradeço por qualquer ajuda.
Obrigado!!
machado_s
ds_machado@ig.com.br
dsmac@orkut.com.br
* Um amigo que não saiba harmonizar um conflito nunca é um verdadeiro amigo. Rui Pais *
Clipper5.2e, Blinker 7
Estou tentando usar pela 1 vez o tbrowse, assim sendo realizei um teste com este peq exemplo q o nosso irmão Dudu postou aqui no forum, mas infelizmente ñ conseguir até agora q funcione.
:(Neg
Está dando um erro: BASE/1132 (BOUND ERROR: array access)
Código: Selecionar todos
#include "inkey.ch"
CLS
USE CLIENTE INDEX CLI1 ALIAS CLI NEW (indexado pelo codigo)
USE CLINOTA INDEX CLINOTA ALIAS ARQNOT NEW (indexado pelo codigo)
cCodigo:= 0
@ 2,5 say " Informe o codigo do cliente :" get cCodigo pict '@K 9999'
read
/* Defino a Matriz */
anot2:= {}
ARQNOT->(DBseek(cCodigo))
While ARQNOT->codigo==cCodigo .and. ARQNOT->(!eof())
AADD(anot2, {ARQNOT->numnot,ARQNOT->qtdnot} )
ARQNOT->(DBskip())
Endd
/* verifico se a matriz possue conteudo */
if len(anot2)>0
/* Crio o Tbrowse */
oCorpo2:= tbrowsenew(03, 03, 12, 73)
/* Para controlar a posicao do 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(32) + chr(179) + chr(32)
oCorpo2:headsep := chr(196) + chr(194) + chr(196)
oCorpo2:footsep := chr(196) + chr(193) + chr(196)
/* Para controlar a navegacao */
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,4]:= x,anot2[nPoint,4])})
/* Crio o browse com as colunas definidas.. */
oCorpo2:addcolumn(oCol1)
oCorpo2:addcolumn(oCol2)
Whil (.t.)
setcursor (0)
whil ( !oCorpo2:stabilize () )
endd
if oCorpo2:stable
nTecla:= Inkey(0)
endi
Do Case
Case (nTecla == K_ESC)
Exit
Case (nTecla == K_DOWN)
oCorpo2:down()
Case (nTecla == K_UP)
oCorpo2:up()
Case (nTecla == K_LEFET)
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()
ENDc
Endd
else // se nao achar nota para esse cliente
Tone(3000,2)
? "Nao existem notas emitidas para este cliente...."
inkey(2)
endi
*****************
* 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)
Endi
RETU(nPointer - nSalvo)
Obrigado!!
machado_s
ds_machado@ig.com.br
dsmac@orkut.com.br
* Um amigo que não saiba harmonizar um conflito nunca é um verdadeiro amigo. Rui Pais *
Clipper5.2e, Blinker 7