Página 2 de 2

Enviado: 11 Mar 2008 23:28
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).

Enviado: 12 Mar 2008 10:35
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