Meu sistema não está atualizando a tela pela variável "ORIGEM" quando uso a rolagem de tela com as teclas de navegação. Talvez seja um REFRESH em algum momento do PRG.
A região do problema vai da linha 32 a 45.
Estou fazendo referencia a outro arquivo pelo SELECT para buscar o nome do CLIENTE ja que o atual (aberto) só tem o CODIGO do CLIENTE.
Aguardo alguma alternativa diferente para o caso.
Obrigado!
Código: Selecionar todos
*****************
PROC BRW_ARQ
*****************
Local nTamNomeP:= 1
Local nQuantRegP:= 0
Local nQuantMaxR:= 60
PARAMETERS brw_ls,brw_cs,brw_li,brw_ci,brw_campos
brw:=TBrowseNew(brw_ls+1,brw_cs+1,brw_li-1,brw_ci-1)
//...Prepara cores padrao para o TBrowse
brw:colorspec := "n+*/w,G+/B,GR+/B,R+/B,GB+/B,RB+/B,W+/G,R*/B"
//...Prepara separadores de cabecalho e colunas
brw:headsep:=chr(205)+chr(209)+chr(205)
brw:colsep :=""+chr(179)+"" // Barra separadora colunas...
brw:footsep:=chr(205) // Ultima linha...
brw:gotopblock({|| dbGoTop()})
brw:gobottomblock({|| dbGoBottom()})
brw:skipblock({|_1| MOV_PTR(_1)})
//...Definicao de colunas com TBColummnNew()
FOR i_=1 TO LEN(brw_campos)
cp_titu:=brw_campos[i_,3]
cp_masc:=brw_campos[i_,2]
cp_:=brw_campos[i_,1]
brw:addcolumn(tbcolumnnew(cp_titu,&("{||TRAN("+cp_+",["+cp_masc+"])}")))
brw:getcolumn(i_):width := LEN(TRAN(&cp_.,cp_masc))
NEXT
* Mostrando nome adquirido de e placa...
t_placa=placa
origem =compra_de
SELE CLI
DBSEEK(origem)
COR_ANT=SETCOLOR()
SET COLOR TO N+*/W
@20,02 SAY "ADQUIRIDO DE:"
@20,63 SAY "PLACA:"
SET COLOR TO R*/W
@20,16 SAY nome
@20,70 say t_placa
SETCOLOR(COR_ANT)
SELE VEI
volta_db=.t.
st_pesq:=""
DO WHILE volta_db
brw:colorRect({brw:RowPos,1,brw:RowPos,brw:ColCount},{ 7 , 8 })
DO WHILE !brw:stabilize() .AND. NEXTKEY()=0
ENDDO
brw:refreshAll()
brw:ForceStable()
brw:colorRect({brw:RowPos,1,brw:RowPos,brw:ColCount},{ 7 , 8 })
cCorAnt:=SetColor("B*/W")
@ 23,12 SAY "BUSCAR:"
@ 23,20 SAY LEFT(st_pesq+spac(40),35)
SetPos(23,(20+Len(st_pesq)))
SetColor(cCorAnt)
tecl_p=INKEY(0)
carac_ = UPPER(CHR(tecl_p))
* Pesquisa letra a letra...
IF (LASTKEY() >= 65 .AND. LASTKEY() <= 122) .OR. LASTKEY() == 32 .OR. (LASTKEY() >= 40 .AND. LASTKEY() <= 57)
IF LEN(st_pesq) < 30
st_pesq += UPPER(CHR(LASTKEY()))
ENDIF
ffseek := st_pesq
SET SOFTSEEK ON
DBSEEK(ffseek)
SET SOFTSEEK OFF
KEYBOARD CHR(176)
INKEY(0)
ELSEIF LASTKEY() = 8 // BackSpace volta apagando...
st_pesq = ""
ENDIF
IF st_pesq = ""
@23,20 SAY PADC("BUSCAR: "+"_",40," ") COLOR("N+*/W")
ELSE
@23,20 SAY PADC("BUSCAR: "+st_pesq+"_",40," ") COLOR("N+*/W")
ENDIF
* Mostrando nome adquirido de e placa...
t_placa=placa
origem =compra_de
SELE CLI
DBSEEK(origem)
COR_ANT=SETCOLOR()
SET COLOR TO N+*/W
@20,02 SAY "ADQUIRIDO DE:"
@20,63 SAY "PLACA:"
SET COLOR TO R*/W
@20,16 SAY nome
@20,70 say t_placa
SETCOLOR(COR_ANT)
SELE VEI
IF tecl_p= K_F2 // VER GASTOS...
TEL=SAVENV()
VER_GAS()
SELE VEI
RSTENV(TEL)
ENDIF
IF tecl_p = K_F3 // Vender o Veiculo selecionado...
TEL=SAVENV()
X_VENDE()
SELE VEI
RSTENV(TEL)
ENDIF
IF tecl_p = K_F4 // IPVA...
TEL=SAVENV()
VER_IPVA()
SELE VEI
RSTENV(TEL)
ENDIF
IF tecl_p = K_F5 // buscar por PLACA...
TEL=SAVENV()
WIN(08,09,11,27,"BUSCAR POR PLACA",'W/RB+*','RB+*/W')
SET CURSOR ON
T_PLA = " - "
@10,12 SAY "PLACA:" GET T_PLA
READ
IF LASTKEY()=27
RSTENV(TEL)
KEYBOARD CHR(176)
RETURN(1)
ENDIF
ffseek := T_PLA
SET SOFTSEEK ON
DBSEEK(ffseek)
SET SOFTSEEK OFF
brw:refreshAll()
ENDIF
IF tecl_p = K_F6 // buscar pela DATA DE COMPRA...
TEL=SAVENV()
WIN(08,09,11,27,"BUSCAR POR DATA",'W/RB+*','RB+*/W')
SET CURSOR ON
T_DT = DATE()
@10,12 SAY "DATA:" GET T_DT
READ
IF LASTKEY()=27
RSTENV(TEL)
KEYBOARD CHR(176)
RETURN(1)
ENDIF
ffseek := T_DT
SET SOFTSEEK ON
SET ORDER TO 6 // Ordena por data de compra...
DBSEEK(ffseek)
SET SOFTSEEK OFF
brw:refreshAll()
ENDIF
IF tecl_p = K_F7 // buscar por CODIGO...
TEL=SAVENV()
WIN(08,09,11,25,"BUSCAR CODIGO",'W/RB+*','RB+*/W')
SET CURSOR ON
T_VEBU = 0
@10,10 SAY "CODIGO:" GET T_VEBU PICT '999999'
READ
IF LASTKEY()=27
RSTENV(TEL)
KEYBOARD CHR(176)
RETURN(1)
ENDIF
ffseek := T_VEBU
SET SOFTSEEK ON
SET ORDER TO 1
DBSEEK(ffseek)
SET SOFTSEEK OFF
brw:refreshAll()
ENDIF
IF tecl_p = K_F8 // Consulta o Custo do Veiculo (Só pra NIVEL 1)
IF nivel_usu = 1
TELA_CUS=SAVENV(13,53,18,78)
WIN(13,53,17,77,"SIGARA INFORMA:","GR+/R*+","R+*/W")
SET COLOR TO "N*/W,W+/W+"
@15,55 SAY 'VLR COMPRA:'
@16,55 SAY 'VLR CUSTO.:'
@15,66 SAY VLR_COMPRA PICT "999,999.99"
@16,66 SAY VLR_CUSTO PICT "999,999.99"
INKEY(0)
RSTENV(TELA_CUS)
ENDIF
ENDIF
IF tecl_p = K_ENTER // ENTER Consulta Conteudo...
TEL=SAVENV()
V_CONSU()
SELE VEI
RSTENV(TEL)
ENDIF
brw:dehilite()
DO CASE
CASE tecl_p = K_ESC
volta_db=.f.
CASE tecl_p = K_UP
brw:up()
CASE tecl_p = K_DOWN
brw:down()
CASE tecl_p = K_RIGHT
brw:right()
CASE tecl_p = K_LEFT
brw:left()
CASE tecl_p = K_HOME
brw:home()
CASE tecl_p = K_END
brw:end()
CASE tecl_p = K_PGUP
brw:pageup()
CASE tecl_p = K_PGDN
brw:pagedown()
CASE tecl_p = K_CTRL_PGDN
brw:gobottom()
CASE tecl_p = K_CTRL_PGUP
brw:gotop()
CASE tecl_p = K_CTRL_END
brw:panend()
CASE tecl_p = K_CTRL_HOME
brw:panhome()
CASE tecl_p = K_CTRL_LEFT
brw:panleft()
CASE tecl_p = K_CTRL_RIGHT
brw:panright()
ENDCASE
ENDDO
RETU


