Congelar LINHAS com o tbrowse
Enviado: 11 Jan 2006 09:18
Pessoal,
Na sessão download tem uma função chamada TELA que serve para visualizar RELATÓRIOS NO VÍDEO, muito boa por sinal. Esta função, feita com o tbrowse, congela COLUNAS a esquerda.
Estou precisando congelar LINHAS. O problema é que não sei fazer essa adaptação para que se possa, além de congelar colunas, também congelar LINHAS acima do cursor.
Eis a função, se alguém puder fazer essa adaptação, já agradeço de logo.
Um abraço,
Janio
Na sessão download tem uma função chamada TELA que serve para visualizar RELATÓRIOS NO VÍDEO, muito boa por sinal. Esta função, feita com o tbrowse, congela COLUNAS a esquerda.
Estou precisando congelar LINHAS. O problema é que não sei fazer essa adaptação para que se possa, além de congelar colunas, também congelar LINHAS acima do cursor.
Eis a função, se alguém puder fazer essa adaptação, já agradeço de logo.
Código: Selecionar todos
***************************************************************************
* Recebe um arquivo texto, cria um dbf, grava neste arquivo e mostra na
* tela, quando sair os arquivos temporarios criados serao apagados.
***************************************************************************
Proce lertexto
Para arquivo
#INCLUDE "INKEY.CH"
#INCLUDE "SETCURS.CH"
local1:= {}
declare acamp:=[15]
cor_ant = setcolor() // Salva cor antiga
dbf_veio= select() // Salva arquivo que estava selecionado
aadd(Local1, {"TELA01", "C", 13, 0})
aadd(Local1, {"TELA02", "C", 13, 0})
aadd(Local1, {"TELA03", "C", 13, 0})
aadd(Local1, {"TELA04", "C", 13, 0})
aadd(Local1, {"TELA05", "C", 13, 0})
aadd(Local1, {"TELA06", "C", 13, 0})
aadd(Local1, {"TELA07", "C", 13, 0})
aadd(Local1, {"TELA08", "C", 13, 0})
aadd(Local1, {"TELA09", "C", 13, 0})
aadd(Local1, {"TELA10", "C", 13, 0})
aadd(Local1, {"TELA11", "C", 13, 0})
aadd(Local1, {"TELA12", "C", 13, 0})
aadd(Local1, {"TELA13", "C", 13, 0})
aadd(Local1, {"TELA14", "C", 13, 0})
aadd(Local1, {"TELA15", "C", 13, 0})
dbcreate("tela", Local1)
sele 99 // ou comando de rede
use tela alias tela
append from &arquivo sdf //nomecompl_arq sdf
goto top
qtde_reg=lastrec()
set cursor off
@ 00,00 to 24,79 colo 'w+/b' //BOX CHR(219)
// /-------------> Cor do TBrowse
// / /---------> Cor da barra em destaque
// / / /---> Cor da barra luminosa
set color to "w+/b,n/w,,,g+/b"
oTab := TBrowseDB(02,01,24,78)
oTab:colsep := "" // CHR(219)+" "
OTAB:HEADSEP:= 'Ä' // CHR(205)+CHR(203)+CHR(205)
OTAB:COLSEP := '' // CHR(032)+CHR(186)+CHR(032)
OTAB:FOOTSEP:= 'Ä' // CHR(205)+CHR(202)+CHR(205)
for i = 1 to fcount()
OTAB:ADDCOLUMN(TBCOLUMNNEW("", FIELDWBLOCK(FIELDNAME(i),SELE() )))
next
@ 01,01 say ' Tecle <C> para congelar as colunas que estao … esquerda do cursor ' colo 'w-/b'
lin_br=30
Do while .T.
nRow := ROW()
nCol := COL()
do while !oTab:Stabilize() ; enddo
oTAB:hilite()
dispbox(3,79,23,79,'°')
ult_pos=3+(((recno()*100)/qtde_reg)/(100/(21-1)))
if recno()=1 ; ult_pos=3
endif
@ ult_pos,79 say chr(219) colo 'bg/b'
setpos( nRow, nCol )
nKey := inkey()
IF oTAB:stable
setpos( nRow, nCol )
nKey := Inkey(0)
endif
if nKey == K_F1
elseif nKey == K_F2
elseif nKey == K_F3
elseif nKey == K_F4
elseif nKey == K_F5
elseif nKey == K_F6
elseif nKey == K_F7
elseif nKey == K_UP ; oTab:UP()
elseif nKey == K_DOWN ; oTab:DOWN()
elseif nKey == K_LEFT ; oTab:LEFT()
elseif nKey == K_CTRL_LEFT ; oTab:PANLEFT()
elseif nKey == K_RIGHT ; oTab:RIGHT()
elseif nKey == K_CTRL_RIGHT ; oTab:PANRIGHT()
elseif nKey == K_PGUP ; oTab:PAGEUP()
elseif nKey == K_CTRL_PGUP ; oTab:GOTOP()
elseif nKey == K_PGDN ; oTab:PAGEDOWN()
elseif nKey == K_CTRL_PGDN ; oTab:GOBOTTOM()
elseif nKey == K_HOME ; oTab:HOME()
elseif nKey == K_CTRL_HOME ; oTab:PANHOME()
elseif nKey == K_END ; oTab:END()
elseif nKey == K_CTRL_END ; oTab:PANEND()
elseif nKey == K_ESC ; EXIT
elseif nkey == 99 .or. nkey==67
if otab:freeze=0
otab:freeze := otab:colpos -1
lin_br=21
else
otab:freeze = 0
lin_br= 30
otab:panhome()
otab:refreshall()
endif
endif
oTab:colorRect({1,1,lin_br,oTab:freeze},{2,5})
enddo
arq=dbf()
use
arq_dbf=alltrim(arq)+'.DBF'
erase &arq_dbf // apaga o arquivo dbf que mostra na tela a impressao.
**** erase &arquivo // apaga o arquivo prn que mostra na tela a impressao.
sele &dbf_veio // seleciona novamente o arquivo que estava aberto
set color to '&cor_ant.'
Janio