Página 1 de 1

TBCOLUMNNEW - COMO ADICIONAR COM ARRAY ?

Enviado: 06 Jun 2006 11:33
por Eliane
Não tenho muito conhecimento do Tbrowse. Estou tentanto uma função para que o tbrowse mostre uma tabela na tela. As tabelas serão passadas como parâmetro. Exemplo:

tabela1 :={}
-----------------
AADD(tabela1,{ "Nome", "@!", 15} ) onde:
o nome, é o título propriamente dito,
@! a pict que será usada e
15 o tamanho (width) para get

AADD(tabela1,{ "Data ", "@D", 10} )
AADD(tabela1,{ "Depto ", "@!", 15 } )


tabela2 := {}
-----------------
AADD(tabela2, { "ERICA" , CTOD("05/05/2006"), "INFORMÁTICA" } )
AADD(tabela2, { "ANGELO" ,CTOD("03/05/2006"), "INFORMÁTICA" } )
AADD(tabela2, { "MARCELA", CTOD("04/04/2006"), "INFORMÁTICA" } )

----------------------------------------------
FUNCAO(tabela1,tabela2,03,03,15,65)
----------------------------------------------

PRIVATE n:= 1 ,; // contador
ntot:=len(pa_tabget) ,; // tamanho da tabela de get linhas
pr_flag := 1

brw := TBrowseNew(pa_lin1,pa_col1,pa_lin2,pa_col2)

brw:colorspec := SETCOLOR()
brw:headsep:=chr(205)+chr(209)+chr(205)
brw:colsep:=" "+chr(179)+" "
brw:gotopblock({|| n:= 1})
brw:gobottomblock({|| n:=ntot})
brw:skipblock({|item| ( n:= n + item,;
iif ( n < 1, item:= item - n + (n:= 1),;
iif(n > ntot, item:= item - (n - (n:=ntot)), Nil)), item)})


l_cont := 1 // l_cont No da coluna

DO WHILE .t.
IF l_cont > LEN(pa_tabget[1])
EXIT
ENDIF

brw:addcolumn(tbcolumnnew(pa_tabtit[l_cont,1] , ;
{|| TRANS(pa_tabget[n,?????????], pa_tabtit[l_cont,2])} ))

==> O QUE EU USO NO LUGAR DE ????????
brw:getcolumn(l_cont):width := pa_tabtit[l_cont,3]
brw:getcolumn(l_cont):cargo := pa_tabtit[l_cont,2]
l_cont := l_cont + 1

ENDDO

pr_flag := 0
l_cont := 1

n := 1
l_retorno := .t.
l_escolha = 0

DO WHILE l_retorno

IF l_escolha > 0
EXIT
ENDIF

SETCOLOR("W+/B")
SET CURSO OFF

e := 1
DO WHILE !brw:stabilize() .AND. NEXTKEY()=0
ENDDO

READINSERT(.f.)
x_ = COL() ; y_ = ROW()

l_tecla := INKEY(0)
carac_ = UPPER(CHR(l_tecla))

SET CURSO ON
brw:dehilite()

DO CASE
CASE l_tecla = K_ENTER
l_escolha := brw:rowpos
CASE l_tecla = K_ESC
l_retorno := .f.
CASE l_tecla = K_UP
brw:up()
CASE l_tecla = K_DOWN
brw:down()
CASE l_tecla = K_RIGHT
brw:right()
CASE l_tecla = K_LEFT
brw:left()
CASE l_tecla = K_HOME
brw:home()
CASE l_tecla = K_END
brw:end()
CASE l_tecla = K_PGUP
brw:pageup()
CASE l_tecla = K_PGDN
brw:pagedown()
CASE l_tecla = K_CTRL_PGDN
brw:gobottom()
CASE l_tecla = K_CTRL_PGUP
brw:gotop()
CASE l_tecla = K_CTRL_END
brw:panend()
CASE l_tecla = K_CTRL_HOME
brw:panhome()
CASE l_tecla = K_CTRL_LEFT
brw:panleft()
CASE l_tecla = K_CTRL_RIGHT
brw:panright()


ENDCASE
ENDDO

SET CURSOR ON
RETURN

Enviado: 06 Jun 2006 13:48
por Stanis Luksys
Olá,

Não consegui entender perfeitamente o q vc quer com sua função, mas por via das duvidas da uma olhada no exemplo Browse que tem na pasta Samples do Clipper....

Pode ser que ajude em algo.