Gostaria que alguém me ajudasse neste problema.
Aqui vai um trecho do código:
Código: Selecionar todos
/*
ÚÄ Program ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Aplica‡„o: DBEDIT - lista com deleted(). DBF indexado com a condicao ³
³ deleted() ³
³ O que se pretende e que atraves do DBEDIT sempre que na base ³
³ de dados o campo ff=1 e o registo esteja deletado este seja ³
³ recuperado com recall e haja um refresh no ecra ³
³ Por exemplo: Carrego no SPACE e o campo ff="1" ³
³ Carrego em enter e o programa "tira" o "1" do ff a todos
os registos e faz um ³
³ refresh do DBEDIT e mostra a lista dos registos que nao ³
³ estao marcados com "1" tirando aqueles que estao marcados ³
³ e mostrando os outros ³
³ No DBEDIT tenho o seguinte: ³
³ case l=32 ³
³ IF ff="1" ³
³ replace ff with " " ³
³ elseif ff=" " ³
³ replace ff with "1" ³
³ ENDIF ³
³ X=1 ³
³ tecla(26,1) ³
³ endicase ³
³ ³
³ Nome: PROBLEMA.PRG ³
³ Autor: Carlos Lapa ³
³ Vers„o: 2.00 ³
³ Data cria‡„o: 05-10-10 Actualizado em : þ05-10-10 ³
³ Hora cria‡„o: 21:54:02 Hora actualiza‡„o: þ21:54:02 ³
³ Fich. Make: ³
³ Fich. Exec.: Doc.s por: Carlos Lapa ³
³ Copyright: (c) Carlos Lapa, Inc. ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
*/
function mv_mv()
rot="MVMV"
priv l
sele 1
use vendas inde venda tag vvenda3 to vvendas for deleted()
OrdSetFocus("vvenda3")
dbsetorder(3)
set deleted off
set filt to recno()>1
go top
do whil .t.
publ v1a[1],v2a[1],v3a[1],v4a
if indexord()=3
tit("Vendas (Recupera‡Æo por venda)")
v1a[1]="strzero(VENDA,5,0)+' '+dtoc(datactual)+' '+utente+' '+proc+' '+hora+' '+letraesc+cursoabv+' '+origem+tran(total,'@E 999,999.99')+iif(ff=' ',' ',iif(ff='1','þ',' '))"
v3a[1]="Venda DataACTUAL Utente Proc Hora Esc Curso Orig Total"
pfs("[SPACE]Marca/Desmarca,[ENTER]Grava,F7ReordenaLista")
elseif indexord()=4
tit("Vendas (Recupera‡Æo por utente)")
v1a[1]="utente+' '+strzero(venda,5,0)+' '+dtoc(datactual)+' '+proc+' '+hora+' '+letraesc+cursoabv+' '+origem+tran(total,'@E 999,999.99')+iif(ff=' ',' ',iif(ff='1','þ',' '))"
v3a[1]="Utente Venda DataACTUAL Proc Hora Esc Curso Orig Total"
pfs("[SPACE]Marca/Desmarca,[ENTER]Grava,F7ReordenaLista")
endi
v2a[1]="@"
v4a=""
cor(2)
keyb chr(26)
dbedit(04,00,22,80,v1a,"fc",v2a,v3a,v4a)
l=lastkey()
do case
case l=27
replace all ff with " "
exit
case l=13
* mv_mv()
mv_gr(1)
IF vali=.T.
go top
do whil !eof()
IF ff="1" && se carregar no espaco ff="1" na base de dados
&& o que indica que esta marcado para recuperar && para recuperar da-se espaco
recall
dbcommit()
replace ff with " "
ENDIF
skip
endd
ENDIF
inkey(0)
case l=-6
mv_ord() // reordena
if lastkey()=27
exit
endif
endc
endd
rele v1a,v2a,v3a,v4a
rot="MAIN"
return
Agradeco o vosso tempo na resolucao deste problema
xharbour 1.2.0 e bcc55
lapinhazzz
