Função READEXIT
Enviado: 11 Jan 2011 22:26
Eu tenho usado em meus sistemas muitas vezes a função READEXIT, para permitir avançar ou retroceder em uma entrada de dados, e, em muitas rotinas ela funcionou legal.
Agora em um sistema mais recente se teclar SETA PARA CIMA ou SETA PARA BAIXO, o programa as "ignora".
Exemplo simplificado da rotina:
Eu uso matrizes para gravar os seguintes dados, cada uma delas com 100 elementos:
anbco = número dos Bancos
ancheque = número do cheque
adpres = data de apresentação dos cheques
anvalor = valor do cheque
***************************************************
readexit(.t.)
set escape off
do while .t.
@ lin, 6 get anbco pict "999" valid anbco > 0
read
if lastkey() == 24 // rolamento para baixo
i ++
if i > 100
@ 24,0
@ 24,0 say "Limite máximo = 100 cheques"
i --
loop
endif // fim i > 100
if anbco[i-1] == 0
i --
loop
endif // fim anbco[i-1] == 0
lin ++
if lin > 17
lin := 17
scroll(6,6,17,41,1)
endif // fim lin > 17
@ lin,12 get ancheque pict "999999"
@ lin,21 get adapres
@ lin,31 get anvalor pict "@E ###,###.##"
@ lin,42 say i pict "999" color "gr+/b"
clear gets
loop
endif // fim rolamento para baixo
if lastkey() == 05 // rolamento para cima
i --
if i < 1
@ 24,0
@ 24,0 say "J chegou ao primeiro cheque"
i ++
loop
endif // fim i < 1
lin --
if lin < 6
lin := 6
scroll(6,6,17,41,-1)
endif // fim lin < 6
@ lin,12 get ancheque pict "999999"
@ lin,21 get adapres
@ lin,31 get anvalor pict "@E ###,###.##"
@ lin,42 say i pict "999" color "gr+/b"
clear gets
loop
endif // fim rolamento para cima
....
***********************************************
O que pode causar que o sistema ignore as teclas Seta para cima e Seta para Baixo no READ em questão ?
Agora em um sistema mais recente se teclar SETA PARA CIMA ou SETA PARA BAIXO, o programa as "ignora".
Exemplo simplificado da rotina:
Eu uso matrizes para gravar os seguintes dados, cada uma delas com 100 elementos:
anbco = número dos Bancos
ancheque = número do cheque
adpres = data de apresentação dos cheques
anvalor = valor do cheque
***************************************************
readexit(.t.)
set escape off
do while .t.
@ lin, 6 get anbco pict "999" valid anbco > 0
read
if lastkey() == 24 // rolamento para baixo
i ++
if i > 100
@ 24,0
@ 24,0 say "Limite máximo = 100 cheques"
i --
loop
endif // fim i > 100
if anbco[i-1] == 0
i --
loop
endif // fim anbco[i-1] == 0
lin ++
if lin > 17
lin := 17
scroll(6,6,17,41,1)
endif // fim lin > 17
@ lin,12 get ancheque pict "999999"
@ lin,21 get adapres
@ lin,31 get anvalor pict "@E ###,###.##"
@ lin,42 say i pict "999" color "gr+/b"
clear gets
loop
endif // fim rolamento para baixo
if lastkey() == 05 // rolamento para cima
i --
if i < 1
@ 24,0
@ 24,0 say "J chegou ao primeiro cheque"
i ++
loop
endif // fim i < 1
lin --
if lin < 6
lin := 6
scroll(6,6,17,41,-1)
endif // fim lin < 6
@ lin,12 get ancheque pict "999999"
@ lin,21 get adapres
@ lin,31 get anvalor pict "@E ###,###.##"
@ lin,42 say i pict "999" color "gr+/b"
clear gets
loop
endif // fim rolamento para cima
....
***********************************************
O que pode causar que o sistema ignore as teclas Seta para cima e Seta para Baixo no READ em questão ?