Imprimir lancamentos deletados.

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Imprimir lancamentos deletados.

Mensagem 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.
Marcos Roberto
NetService Software
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Imprimir lancamentos deletados.

Mensagem 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 )
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Imprimir lancamentos deletados.

Mensagem por marcos.gurupi »

Obrigado Jairo por responder.

Eu consigo somente criando um INDEX ?
Marcos Roberto
NetService Software
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Imprimir lancamentos deletados.

Mensagem 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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Imprimir lancamentos deletados.

Mensagem por marcos.gurupi »

Entaum Jairo isso mata a charada pq ao fazer o rel. eh soh colocar esse IF...

vlw amigo.
Marcos Roberto
NetService Software
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Imprimir lancamentos deletados.

Mensagem 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.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Responder