FIltro manual por data para ser visualizado pelo achoice....

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

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á

Mensagem por Pablo César »

Código: Selecionar todos

If xdatapag <> ctod(" / / ") .and. xdatapag>=Fdatapag1 .and. xdatapag<=Fdatapag2 
Se seu código é esse, se você checou seu banco de dados (como eu sugerí), isto é ver se seu BD tem alguma data incorreta. Por exemplo: 10/12/1904 em vez de 10/12/2004. Não teria cómo dar errado. Vou apresentar seu código mas substituindo os campos por vetores e as variáveis por valores fixo. Você poderá compilar-lo e constatar que estaria correto. Veja só:

Código: Selecionar todos

SET DATE TO BRITISH
SET CENTURY ON
avetor:={CTOD("  /  /  "),ctod("01/01/1980"),ctod("01/02/2001"),ctod("10/12/2003")}
FOR I=1 TO LEN(avetor)
    // IF !EMPTY(avetor[I]) .AND. (avetor[I]>=ctod("01/01/2000") .and. avetor[I]<=ctod("01/01/2004"))
    IF avetor[I] <> ctod(" / / ") .AND. avetor[I]>=ctod("01/01/2000") .and. avetor[I]<=ctod("01/01/2004")
       ? avetor[I]
    ENDIF
NEXT
Neste exemplo, foram mostradas as datas:

01/02/2001
10/12/2003

Verifique as suas variáveis e seu BD. Outra coisa que muitas vezes nos batemos com algo que é muito usual acontecer. Vou mencionar, mas me desculpe se pareceria que eu estaria te substimando. Na hora de compilar (dá um erro de compilação, seja por erro de sintaxe, etc..) e você pensa que foi compilado, mas na verdade você está com o executável na versão anterior. Espero que não me mal interprete. Sabe ocorrer (as vezes acontece comigo na hora da minha pressa ou da minha ansiedade de ver pronto o resultado).
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.
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem por gvc »

Código: Selecionar todos

// Variáveis do Filtro
Fdatapag1:=ctod(" / / ")
Fdatapag2:=Date()

if !empty(xdatapag) .and. xdatapag >= Fdatapag1 .and. xdatapag <= Fdatapag2
...
end
Veja que vc define Fdatapag1 como data em branco.
Vc deveria colocar uma data inicial nessa variavel.

Código: Selecionar todos

Fdatapag1:=bom(date()) // inicio do mes
Fdatapag2:=Date()
if !empty(xdatapag) .and. xdatapag >= Fdatapag1 .and. xdatapag <= Fdatapag2
...
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}
Responder