Página 1 de 1

Imprimir lancamentos deletados.

Enviado: 13 Mar 2013 16:28
por marcos.gurupi
Caros, um cliente me pedio um relatorio de pedidos excluidos, qual eh o comando que eu poderia usar para filtrar apenas lancamentos deletados ? Ou serah que quando usuario excluir algum lancamento o sistema terah q marca-lo como excluido para efeito do relatorio ? Obrigado.

Imprimir lancamentos deletados.

Enviado: 13 Mar 2013 16:52
por Jairo Maia
Olá Marcos,

Acho que você pode fazer assim: Primeiro, você precisa permitir que os registros deletados sejam vistos no indice, depois use a função Dele():

Código: Selecionar todos

ldeleted := SET( _SET_DELETED, .F. )

INDEX ON Dele() [TAG <ctag>] TO <cFile>

SET( _SET_DELETED, ldeleted )

Imprimir lancamentos deletados.

Enviado: 14 Mar 2013 13:29
por marcos.gurupi
Obrigado Jairo por responder.

Eu consigo somente criando um INDEX ?

Imprimir lancamentos deletados.

Enviado: 15 Mar 2013 05:06
por Jairo Maia
Olá Marcos,

Não! Mesmo numa tabela não indexada, a qualquer momento você pode testar se o registro foi deletado. Para testar se o registro corrente está deletado basta usar:

Código: Selecionar todos

If Dele()
 Hb_Alert( "Registro " + LTrim( Str( Recn() ) ) + " está excluido" )
Endi
O que é necessário, independente se área indexada ou não, é que o _SET_DELETED esteja setado como .F., que é o padrão do Clipper/[x]Harbour. Se ele estiver setado como .T., os registros deletados serão ignorados pelo sistema.

Imprimir lancamentos deletados.

Enviado: 15 Mar 2013 16:07
por marcos.gurupi
Entaum Jairo isso mata a charada pq ao fazer o rel. eh soh colocar esse IF...

vlw amigo.

Imprimir lancamentos deletados.

Enviado: 15 Mar 2013 17:49
por Pablo César
Claro que dessa forma, você vai ter que varrer (num laço de repetição como DO WHILE EOF com skip) o dbf todo. E a primeira sugestão do Jairo, iria ser mais rápido o processamento. Tudo isso levando em conta se for um arquivo de uma quantidade de registros considerável.