| | Discusiones Técnico Calculo de fech... | |
|
| | |
Calculo de fechas en report Posted: 17 jun 08 6:38 (Spain) |
| | |
Hola, quiero hacer lo siguiente con un report pero no se muy bien como. El report muestra la tabla "Mov. cliente" y se detallan el numero de factura, la fecha de vencimiento de esta y el importe pendiente; a continuacion tengo tres columnas. Lo que quiero es que si, por ejemplo, han pasado 20 días desde la fecha de vencimiento que el importe me lo muestre en una determinada columna y si han pasado 30 en otra; pero no tengo muy claro como hacer esto, supongo que he de coparar con la fecha del sistema pero no sé como indicar lo de los días. ¿Se os ocurre como?.
Muchas gracias y un saludo. |
| |
| | |
Re: Calculo de fechas en report Posted: 17 jun 08 7:40 (Spain) |
| | |
Puedes utilizar la función CALCDATE para añadir 20 días a la fecha de vencimiento que aparece en el movimiento. Después comparas el resultado con la fecha del sistema.
IF CALCDATE('20D',FechaVencimiento) > TODAY THEN // Han pasado más de 20 días ELSE // No han pasado más de 20 días |
| |
| | |
Re: Calculo de fechas en report Posted: 17 jun 08 8:45 (Spain) |
| | |
Muchas gracias, pero haciendolo de esa manera me ocurre al reves, es decir, me pasa a la columa en donde le he indicado la funcion los importes que tienen menos de 20 dias desde la fecha de vencimiento, cuando necesito que sea cuando han pasado más de 20 dias desde la fecha de vencimiento. Cambiando el signo por < me salen importes extraños, ¿que hago mal?. |
| |
| | |
Re: Calculo de fechas en report Posted: 17 jun 08 8:51 (Spain) |
| | |
Cierto... lo he puesto del revés, la condición debería ser < o <=, pero entonces en el THEN tienes que no han pasado más de 20 días y en el ELSE que si que han pasado más de 20 días.
IF CALCDATE('20D',FechaVencimiento) < TODAY THEN // Han pasado más de 20 días ELSE // No han pasado más de 20 días
También puedes ponerlo así: IF TODAY > CALCDATE('20D',FechaVencimiento) THEN // No han pasado más de 20 días ELSE // Han pasado más de 20 días
O así: IF CALCDATE('20D',FechaVencimiento) > TODAY THEN // No han pasado más de 20 días ELSE // Han pasado más de 20 días |
| |
| | |
Re: Calculo de fechas en report Posted: 17 jun 08 9:46 (Spain) |
| | |
Ahora sí, genial. Muchas gracias por tu ayuda; perdona que te moleste de nuevo pero se me ha complicado el tema. Resulta que era que el importe aparezca en una determinada columna cuando sólo lleve 1 dia desde su vencimiento y permanezca en esta columa durante los 118 días siguientes a la fecha de vencimiento, pasados estos que pase a la siguiente columna en donde irán todos los importes superiores a 118 día (o sea, 119) superiores a la fecha de vencimiento, pero claro, no se como hacer para que en la tercera columna no me aparezcan los importes de la segunda ya que tambien está dentro del tiempo especificado, no se si me explico. Perdona el rollo, no se si se te ocurre como hacerlo. Te paso el sencillo codigo que he hecho según lo que me has comentado.
var2:=0; IF TODAY > CALCDATE('20D',"Due Date")THEN var2:="Remaining Amount" ELSE var1:="Remaining Amount";
var1 y var2 són las variables, es decir, las columnas para entendernos, falta la var3; y "Remaining Amount" es el campo importe que quiero que me vaya copiando de una o otra columna según los días.
Muchas gracias y un saludo. |
| |
| | |
Re: Calculo de fechas en report Posted: 17 jun 08 9:52 (Spain) |
| | |
Entonces sería algo así como:
var2:=0; IF TODAY > CALCDATE('20D',"Due Date")THEN BEGIN IF TODAY > CALCDATE('118D',"Due Date") THEN // Han pasado más de 20 y más de 118 días var3:="Remaining Amount" ELSE // Han pasado más de 20 días, pero no más de 118 días var2 := "Remaining Amount" END ELSE var1:="Remaining Amount";
|
| |
| | Discusiones Técnico Calculo de fech... | |
| | | |
| | | |
| | | |