Estoy intentando hacer lo siguiente:
Tengo dos campos fecha. El primero siempre tiene valor(ej:15/01/05), pero el
segundo puede estar en blanco. Al hacer el report debe calcular los dias
que hay desde el primer campo al segundo.
M e funciona correctamente
data ::odbf1:hasta- ::odbf1:desde
El problema es cuando el campo ::odbf1:hasta es igual a " / / ".
He querido hacer:
data iif(::odbf1:hasta < ctod("01/01/04"), date()-::odbf1:desde,
::odbf1:hasta- ::odbf1:desde)
No anda..¿ Como se podria hacer?
Gracias
Paco V
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Condicion en Report
- ignacio
- Site Admin
- Mensajes: 9473
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Condicion en Report
Paco,
Todo depende de como quieras que se interprete una fecha vacía, porque para
restar dos entidades cualesquiera, han de ser del mismo tipo, para que me
entiendas, no se pueden restar peras con manzanas.
Creo recordar que en Clipper que una fecha vacía equivalía a 01/01/80, y
supongo que será igual en xHarbour, por lo tanto la diferencia de días entre
una fecha y otra fecha en blanco equivaldría a los fechas entre el 1/1/80 y
el otro día.
No obstante lo más sensato en mi opinión es que le des a la fecha en blanco
un valor defecto, que dependiendo de lo que estes haciendo puede ser
distinto. Para implementarlo en el informe simplemente utiliza una función
FUNCION NumDias( dDesde, dHasta )
DEFAULT dHasta TO ...
RETURN dHasta - dDesde
Y luego en el informe:
data NumDias( ::odbf1:desde, ::odbf1:hasta )
Un saludo,
"Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
news:[email=43399227@ozsrvnegro.ozlan.local...]43399227@ozsrvnegro.ozlan.local...[/email]
> Estoy intentando hacer lo siguiente:
>
> Tengo dos campos fecha. El primero siempre tiene valor(ej:15/01/05), pero
> el
> segundo puede estar en blanco. Al hacer el report debe calcular los dias
> que hay desde el primer campo al segundo.
>
> M e funciona correctamente
> data ::odbf1:hasta- ::odbf1:desde
>
> El problema es cuando el campo ::odbf1:hasta es igual a " / / ".
> He querido hacer:
>
> data iif(::odbf1:hasta < ctod("01/01/04"), date()-::odbf1:desde,
> ::odbf1:hasta- ::odbf1:desde)
>
> No anda..¿ Como se podria hacer?
>
> Gracias
> Paco V
>
>
>
>
>
Todo depende de como quieras que se interprete una fecha vacía, porque para
restar dos entidades cualesquiera, han de ser del mismo tipo, para que me
entiendas, no se pueden restar peras con manzanas.
Creo recordar que en Clipper que una fecha vacía equivalía a 01/01/80, y
supongo que será igual en xHarbour, por lo tanto la diferencia de días entre
una fecha y otra fecha en blanco equivaldría a los fechas entre el 1/1/80 y
el otro día.
No obstante lo más sensato en mi opinión es que le des a la fecha en blanco
un valor defecto, que dependiendo de lo que estes haciendo puede ser
distinto. Para implementarlo en el informe simplemente utiliza una función
FUNCION NumDias( dDesde, dHasta )
DEFAULT dHasta TO ...
RETURN dHasta - dDesde
Y luego en el informe:
data NumDias( ::odbf1:desde, ::odbf1:hasta )
Un saludo,
"Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
news:[email=43399227@ozsrvnegro.ozlan.local...]43399227@ozsrvnegro.ozlan.local...[/email]
> Estoy intentando hacer lo siguiente:
>
> Tengo dos campos fecha. El primero siempre tiene valor(ej:15/01/05), pero
> el
> segundo puede estar en blanco. Al hacer el report debe calcular los dias
> que hay desde el primer campo al segundo.
>
> M e funciona correctamente
> data ::odbf1:hasta- ::odbf1:desde
>
> El problema es cuando el campo ::odbf1:hasta es igual a " / / ".
> He querido hacer:
>
> data iif(::odbf1:hasta < ctod("01/01/04"), date()-::odbf1:desde,
> ::odbf1:hasta- ::odbf1:desde)
>
> No anda..¿ Como se podria hacer?
>
> Gracias
> Paco V
>
>
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Condicion en Report
Gracias Ignacio, no se me habia ocurrido utilizar una funcion. Pense en
hacerlo directamente.
Paco V
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:433994fd$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Paco,
>
> Todo depende de como quieras que se interprete una fecha vacía, porque
> para restar dos entidades cualesquiera, han de ser del mismo tipo, para
> que me entiendas, no se pueden restar peras con manzanas.
>
> Creo recordar que en Clipper que una fecha vacía equivalía a 01/01/80, y
> supongo que será igual en xHarbour, por lo tanto la diferencia de días
> entre una fecha y otra fecha en blanco equivaldría a los fechas entre el
> 1/1/80 y el otro día.
>
> No obstante lo más sensato en mi opinión es que le des a la fecha en
> blanco un valor defecto, que dependiendo de lo que estes haciendo puede
> ser distinto. Para implementarlo en el informe simplemente utiliza una
> función
>
> FUNCION NumDias( dDesde, dHasta )
>
> DEFAULT dHasta TO ...
>
> RETURN dHasta - dDesde
>
> Y luego en el informe:
>
> data NumDias( ::odbf1:desde, ::odbf1:hasta )
>
> Un saludo,
>
> "Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
> news:[email=43399227@ozsrvnegro.ozlan.local...]43399227@ozsrvnegro.ozlan.local...[/email]
>> Estoy intentando hacer lo siguiente:
>>
>> Tengo dos campos fecha. El primero siempre tiene valor(ej:15/01/05), pero
>> el
>> segundo puede estar en blanco. Al hacer el report debe calcular los dias
>> que hay desde el primer campo al segundo.
>>
>> M e funciona correctamente
>> data ::odbf1:hasta- ::odbf1:desde
>>
>> El problema es cuando el campo ::odbf1:hasta es igual a " / / ".
>> He querido hacer:
>>
>> data iif(::odbf1:hasta < ctod("01/01/04"), date()-::odbf1:desde,
>> ::odbf1:hasta- ::odbf1:desde)
>>
>> No anda..¿ Como se podria hacer?
>>
>> Gracias
>> Paco V
>>
>>
>>
>>
>>
>
>
hacerlo directamente.
Paco V
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:433994fd$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Paco,
>
> Todo depende de como quieras que se interprete una fecha vacía, porque
> para restar dos entidades cualesquiera, han de ser del mismo tipo, para
> que me entiendas, no se pueden restar peras con manzanas.
>
> Creo recordar que en Clipper que una fecha vacía equivalía a 01/01/80, y
> supongo que será igual en xHarbour, por lo tanto la diferencia de días
> entre una fecha y otra fecha en blanco equivaldría a los fechas entre el
> 1/1/80 y el otro día.
>
> No obstante lo más sensato en mi opinión es que le des a la fecha en
> blanco un valor defecto, que dependiendo de lo que estes haciendo puede
> ser distinto. Para implementarlo en el informe simplemente utiliza una
> función
>
> FUNCION NumDias( dDesde, dHasta )
>
> DEFAULT dHasta TO ...
>
> RETURN dHasta - dDesde
>
> Y luego en el informe:
>
> data NumDias( ::odbf1:desde, ::odbf1:hasta )
>
> Un saludo,
>
> "Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
> news:[email=43399227@ozsrvnegro.ozlan.local...]43399227@ozsrvnegro.ozlan.local...[/email]
>> Estoy intentando hacer lo siguiente:
>>
>> Tengo dos campos fecha. El primero siempre tiene valor(ej:15/01/05), pero
>> el
>> segundo puede estar en blanco. Al hacer el report debe calcular los dias
>> que hay desde el primer campo al segundo.
>>
>> M e funciona correctamente
>> data ::odbf1:hasta- ::odbf1:desde
>>
>> El problema es cuando el campo ::odbf1:hasta es igual a " / / ".
>> He querido hacer:
>>
>> data iif(::odbf1:hasta < ctod("01/01/04"), date()-::odbf1:desde,
>> ::odbf1:hasta- ::odbf1:desde)
>>
>> No anda..¿ Como se podria hacer?
>>
>> Gracias
>> Paco V
>>
>>
>>
>>
>>
>
>