a que vc me passou está funcionando bem, o problema não é nela; o problema é na que estou fazendo agora, para outra coisa
minha função está assim:
Código: Selecionar todos
Conexao := Conectado( nProvTar )
Conexao:Open()
oRs := conexao:Execute( cSel )
novobrowseado()
do while .t.
oTBrowse:forceStable()
oTBrowse:refreshCurrent()
nKey := Inkey(0)
if lastkey()=13
arq=oRs:Fields("nrtarefa"):Value
chmfunc("entersql",arq,"S")
elseif lastkey()=27
@ maxrow()-1,1 prompt "Finalizar consulta"
@ maxrow()-1,24 prompt "Reabrir mesmo item"
@ maxrow()-1,46 prompt "Refazer mesma consulta"
@ maxrow()-1,70 prompt "Incluir sem prioridade"
@ maxrow()-1,94 prompt "Incluir solucionados"
@ maxrow()-1,116 prompt "Incluir sem prioridade e solucionados"
menu to opret
do case
case opret=0 .or. opret=1
cSair="S"
case opret=2
chmfunc("entersql",arq,"S")
case opret=4
prmzero="N"
case opret=5
nsol="S"
case opret=6
prmzero="N"
nsol="T"
endcase
exit
endif
enddo
e a função novobrowseado() está assim:
Código: Selecionar todos
function novobrowseado
#include "tbrowse.ch"
keysec(27,1000,-1,.t.)
cls
oTBrowse := TBrowseDB():new( 05, 3, MaxRow() - 7, MaxCol() - 2 )
oTBrowse:goTopBlock := { || oRs:moveFirst() }
oTBrowse:goBottomBlock := { || oRs:moveLast() }
oTBrowse:skipBlock := { | n | ADORecordSetSkipper( oRs, n ) }
oTBrowse:HeadSep := Chr(196)
oTBrowse:ColSep := Chr(179)
oTBrowse:FootSep := ""
nLen := oRs:fields():count() - 1
FOR i := 0 TO nLen
oColumn := TBColumnNew( oRs:fields(i):name(), ADORecordSetFieldBlock( oRs, i ) )
IF ValType( oRs:Fields(i):Value ) == "D"
nFieldLen := Len( Dtoc( Date() ) )
ELSE
nFieldLen := Min( oRs:Fields(I):DefinedSize, 50 )
ENDIF
oColumn:Width := Max( nFieldLen, Len( oRs:fields(i):name ) )
oTBrowse:addColumn( oColumn )
NEXT
@ 5,5 say "Abrindo consulta..."
return .t.
eu devo estar fazendo algo errado, pois não estou conseguindo mover dentro do browse com as setas


