Página 1 de 1

OPERACOES COM DATAS

Enviado: 12 Dez 2006 22:55
por conde
OLA!!
PRECISO GERAR UM RELATORIO DO MES INFORMADO PARA TRAS , SERA QUE POSSO UTILIZAR O "<" , CONFORME ABAIXO?

DO WHILE DTOS(emissao) < cAnoMes .AND.!EOF() OU

DO WHILE left(DTOS(PAGAMENTO),6) < (V_ANOMES) .AND. !EOF()

O QUE ACONTECE EM AMBOS OS CASOS É QUE QUANDO USO "<" A LISTAGEM NAO SAI , E SE , COLOCAR "=" A LISTAGEM SAI TOTAL INDEPENDENTE DA MINHA DATA.

Enviado: 15 Dez 2006 05:35
por Dudu_XBase
Pode sim.

Usando a função dtos() ela retorna anomêsdia

Nesse caso que vc postou

DO WHILE DTOS(emissao) < cAnoMes .AND.!EOF()

A variavel cAnoMes possue tamanho 6 = ( 4 (ano) + 2 (mes) e o retorno
do dtos() conterá tamanho 8.


Aqui a esta correta

DO WHILE left(DTOS(PAGAMENTO),6) < (V_ANOMES) .AND. !EOF()

Verifique se o indice que vc esta usando esta ordenado pela data onde
vc esta executando seu laço While.

Enviado: 18 Dez 2006 15:36
por gvc
Se vc esta querendo imprimir até um determindo mes/ano, então:

xanomes := '200612'

dbgotop()
while !eof() .and. left(dtos(vencimento), 6) < xanomes
...
dbskip()
end

- seu arquivo deve estar indexado por data de vencimento.
-----------------
se é para imprimir só os vencidos nos meses anteriores.

dbgotop()
while !eof()
if left(dtos(vencimento), 6) < xanomes
...
end
dbskip()
end

Espero ter ajudado. Especifique melhor o que vc quer fazer, se isto não ajudar.