pessoal,
é assim tenho no cadastro 4 datas assim dispostas DT1,DT2,DT3,DT4
e preciso gerar um relatorio com os itens que entiverem entre as datas informadas ou seja:
se eu pedir um relatorio de 01/11/06 a 01/12/06, e qquer uma das datas (DT1,DT2,DT3,DT4) estiver dentro desse periodo, mostra o registro.
me fugiu a logica, agradeço.
filtrar por varias datas
Moderador: Moderadores
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Index o sistema pelo campo de data fazendo o seguinte
Agora para vasculhar pela um set de data
Código: Selecionar todos
INDEX ON CAMPO_DATA TO INDICE.NTXCódigo: Selecionar todos
seek datainicial
do while campo_data<=datafinal .and. !eof()
....
skip
enddo
Seus campos são:
dt1, dt2, dt3, dt4
suas datas são: data1 e data2
while !eof()
if data2 < dt1 .or. data1 > dt1
dbskip()
loop
end
if data2 < dt2 .or. data1 > dt2
dbskip()
loop
end
if data2 < dt3 .or. data1 > dt3
dbskip()
loop
end
if data2 < dt4 .or. data1 > dt4
dbskip()
loop
end
// Imprime
dbskip()
end
OU ----------
while !eof()
if (data2 >= dt1 .and. data1 <= dt1) .and.;
(data2 >= dt2 .and. data1 <= dt2) .and.;
(data2 >= dt3 .and. data1 <= dt3) .and.;
(data2 >= dt4 .and. data1 <= dt4)
// Imprime
end
dbskip()
end
dt1, dt2, dt3, dt4
suas datas são: data1 e data2
while !eof()
if data2 < dt1 .or. data1 > dt1
dbskip()
loop
end
if data2 < dt2 .or. data1 > dt2
dbskip()
loop
end
if data2 < dt3 .or. data1 > dt3
dbskip()
loop
end
if data2 < dt4 .or. data1 > dt4
dbskip()
loop
end
// Imprime
dbskip()
end
OU ----------
while !eof()
if (data2 >= dt1 .and. data1 <= dt1) .and.;
(data2 >= dt2 .and. data1 <= dt2) .and.;
(data2 >= dt3 .and. data1 <= dt3) .and.;
(data2 >= dt4 .and. data1 <= dt4)
// Imprime
end
dbskip()
end
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
{POG - Programação Orientada a Gambiarra}

