FoxPro/Visual FoxPro - Sobre cómo trabajar con fechas

 
Vista:

Sobre cómo trabajar con fechas

Publicado por GLAD (34 intervenciones) el 12/04/2007 16:54:24
Hola buenas tardes.

Por aquí nuevamente con una duda que me martiriza.

Tengo una tabla con fecha,importe

Tengo un form en el que tomo en dos textbox la fecha y el importe respectivamente.

En el mismo form, mediante un check, se ha de indicar si se repite el importe, mostrandose, de ser así, un combobox en el que se indica la frecuencia, diaria, mensual, trimestral o anual, y a su vez, la fecha final. Por defecto el check, esta desactivado.

Mi problema viene cuando se activa, porque he de llevar a mi tabla ese importe y a las fechas indicadas según la periodicidad.

Es decir, si la periodicidad es diaria, me tendría que copiar ese importe con su correspondiente fecha, hasta llegar a la fecha final, incluida esta. Idem si es mensual.

¿Alguna sugerencia de por dónde enfocarlo?

Muchas gracias y un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Sobre cómo trabajar con fechas

Publicado por Ernesto Hernandez (4623 intervenciones) el 12/04/2007 17:02:30
Puedes crear un cursor dependiendo de la periocidad. y el cursor lo guardas en tu tabla donde estas guardando

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobre cómo trabajar con fechas

Publicado por GLAD (34 intervenciones) el 12/04/2007 17:42:15
Hola Ernesto.

El problema es que no sé trabajar prácticamente con fechas.

He utilizado

CUENTA=CTOD(thisform.fechafinal.value)-CTOD(thisform.fechainicial.value)

para contar el numero de registros que tendría que añadir al campo fecha, pero ahora no sé cómo hacer para que me ponga, suponiendo del 01/01/2007 al 31/03/2007, esas fechas concretas que entiendo sería aumentando 1 a la fecha inicial hasta llegar a la fecha final.

Gracias por escucharme.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Creo haber encontrado una solucion

Publicado por GLAD (34 intervenciones) el 12/04/2007 19:03:29
CUENTA=thisform.fechafinal.value-thisform.inicial.value

* Los datos estaban ya en fechas y no me hizo falta el CTOD

fecharef=thisform.fechainicial.Value

* La fecha de referencia

FOR N=1 TO cuenta
APPEND BLANK
replace lafecha WITH fecharef
replace lacantidad WITH thisform.cantidad.Value

SKIP

fecharef=fecharef+1

ENDFOR

¿Que tal lo ven?

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Creo haber encontrado una solucion

Publicado por Ernesto Hernandez (4623 intervenciones) el 12/04/2007 21:03:59
tambien puedes utilizar esta funcion para saber la diferencia entre las dos fechas


? Diferencia_AMD(DATE(2000,3,1), DATE())
FUNCTION Diferencia_AMD(tdIni, tdFin)
LOCAL ldAux, lnAnio, lnMes, lnDia, lcRet
*--- Fecha inicial siempre menor
IF tdIni > tdFin
ldAux = tdIni
tdIni = tdFin
tdFin = ldAux
ENDIF
lnAnio = YEAR(tdFin) - YEAR(tdIni)
ldAux = GOMONTH(tdIni, 12 * lnAnio)
*--- No cumplio el año aun
IF ldAux > tdFin
lnAnio = lnAnio - 1
ENDIF
lnMes = MONTH(tdFin) - MONTH(tdIni)
IF lnMes < 0
lnMes = lnMes + 12
ENDIF
lnDia = DAY(tdFin) - DAY(tdIni)
IF lnDia < 0
lnDia = lnDia + DiasDelMes(tdIni)
ENDIF
*--- Si el dia es mayor, no cumplio el mes
IF (DAY(tdFin) < DAY(tdIni))
IF lnMes = 0
lnMes = 11
ELSE
lnMes = lnMes - 1
ENDIF
ENDIF
lcRet = ALLTRIM(STR(lnAnio))+ " años, " + ;
ALLTRIM(STR(lnMes))+ " meses y " + ;
ALLTRIM(STR(lnDia))+ " días"
RETURN lcRet
ENDFUNC

p

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Creo haber encontrado una solucion

Publicado por GLAD (34 intervenciones) el 13/04/2007 12:50:52
Gracias Ernesto. La probaré.

Al final uliticé también un bucle con DO WHILE para el tema de meses y años.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar