Fiz uma rotina simples para observar/reabrir as vendas que estão sendo feitas naquele momento.
Chamei de vendas em atendimento e vendas em andamento.
O arquivo venda_m.dbf possui todos os registros das vendas que estã nesta situação, as
vendas possuem um código único para cada operação, por exemplo:
venda 000256 com cinco produtos incluidos nela, gerando cinco registros no venda_m.dbf
venda 000257 com vinte produtos incluidos nela, gerando vinte registros no venda_m.dbf
venda 000258 com tres produtos incluidos nela, gerando tres registros no venda_m.dbf
etc...
fiz esta rotina com o achoice:
Código: Selecionar todos
*****************************************
FUNCTION andamento()
*****************************************
LOCAL tElaChoice := SAVESCREEN()
LOCAL fUnctionchoice, nRetVal
LOCAL nKey, nPos
zeratela()
SELE 0
IF dbfrede('venda_m','venda_m',.f.,3)
abrearq('venda_m'); sset(1)
DBGOTOP()
IF EOF()
avs('NŽO EXISTEM VENDAS EM ANDAMENTO...')
CLOSE DATABASE
RESTSCREEN(,,,,tElaChoice)
RETURN
END
ELSE
volta()
RETURN
END
DBGOTOP()
nUmItenx := 1
oLd_rEc := venda_m->num_venda
WHILE !EOF()
SKIP
nUmItenx ++
WHILE num_venda == oLd_rEc
SKIP
END
oLd_rEc := venda_m->num_venda
END
PRIVATE vendasAberto[nUmItenx]
DBGOTOP()
nItenx := 1
oLd_rEc := venda_m->num_venda
WHILE !EOF()
mYAdd := num_venda + ' ' + cliente + ' - ' + rmk
acMenuItems[nItenx] := mYAdd
nItenx ++
WHILE num_venda == oLd_rEc
SKIP
END
oLd_rEc := venda_m->num_venda
END
DBGOTOP()
nPos := ACHOICE(02,02,23,75, vendasAberto,;
.T., "fUnctionchoice" )
RESTSCREEN(,,,,tElaChoice)
CLOSE DATABASE
RETURN
*************************************
FUNCTION fUnctionchoice( nMode, nCurReg, nRowPos )
*************************************
LOCAL nRetVal := AC_CONT
LOCAL nKey := LASTKEY()
IF nMode == AC_EXCEPT
IF nKey == K_ENTER
nRetVal := AC_SELECT
ELSEIF nKey == K_ESC
nRetVal := AC_ABORT
END
END
RETURN nRetVal
1) Quando o usuário escolher a venda para reabrir preciso pegar o código da venda que ele escolheu, mas
o nCurReg retorna o número do registro e eu precisaria o conteudo do registro:
ex
000256 Raul de Oliveira Santos
000257 Lilian Aparecida
000258 Marli de Souza
Se o usuário selecionar a venda 00257 o nCurReg retorna 2, como que eu conseguiria capturar "000257 Lilian Aparecida" ?
2) Existe como fazer uma pesquisa dentro do ACHOICE ?
Se alguém tiver alguma idéia agradeço demais !

