Insertar fechas secuenciales vfp

Buenas nuevas ingeniero, aquí pasando nuevamente je je

ahora con la siguiente situación

recuerda que alguna vez quería saber cual era el registro con respecto al 80% de 18 registros? Bueno ahora el algo similar pero nada por ahí!

tengo un código que genera las 18 fechas

pero no me agrada mucho

habrá alguna otra manera de insertar los 18 registros y que la fecha de cada registro automáticamente se añada semana tras semana?

aquí mi código

SELECT dbf_pagos
SET ORDER TO id_pago
GO BOTTOM

vDate = thisform.pageframe1.pgecontratos.txtsemventa.Value

INSERT INTO dbf_pagos(fechapago);
values(vDate + 6)

replace dbf_pagos.saldo WITH thisform.pageframe1.pgecontratos.txtcantrecuperar.Value
replace dbf_pagos.cliente WITH thisform.pageframe1.pgecontratos.txtnomCliente.Value

FOR nRegistros = 1 TO 17
INSERT INTO dbf_pagos(fechapago);
values(fechapago + 6 )

replace dbf_pagos.cliente with thisform.pageframe1.pgecontratos.txtnomCliente.Value
ENDFOR

aquí la intención pues es que solamente el primer registro muestre el saldo ya que en un grid pretendo que cada vez que ingreso la cantidad que deposita el cliente se reste y automáticamente también en el siguiente registro solamente me actualice el saldo al nuevo

espero haberme dado a entender muchísimas gracias por tu apoyo, en esta ocasión me urge algo esta respuesta estoy algo estancado y frustrado a la vez! Desde las 6:00am que me levante el día de hoy programando y hasta ahorita ya te imaginaras como ando jejejeje

Saludos y Muchas Gracias.

1 respuesta

Respuesta
1

Espero no sea demasiado tarde! :( :( Disculpa... he pasado ocupado en la oficina! :( :( La solución para insertar los 18 registros de fecha con 1 semana de diferencia entre fechas es así:

Primero, coloca una D en la propiedad format del text donde ingresas la primera fecha (a la cual le sumaremos el resto de días para ir generando las nuevas fechas). Con esto, la entrada y tipo de formato en el text sera __/ __/ __

LOCAL vDAte

SELECT dbf_pagos
SET ORDER TO id_pago
GO BOTTOM

**--Cargamos la fecha inicial

vDate = CTOD(ALLTRIM(thisform.pageframe1.pgecontratos.txtsemventa.Value))

**--Insertamos primero la fecha inicial

SELECT dbf_pagos

INSERT INTO dbf_pagos(fechapago) VALUES(vDate)

TABLEUPDATE(.F.)

**--//

**--Insertamos los 17 registros, sumando a la fecha inicial

**--7 días.

FOR i = 17 TO 1 STEP -1

vDate = vDate + 1

INSERT INTO dbf_pagos(fechapago) VALUES(vDate)

**--

TABLEUPDATE(.F.)

ENDFOR

**--//

Proba y me avisas! :O

Hola jejejeje pues lo tardado fue relativo sabes? por que afortunadamente dedicas tu tiempo en responder las situaciones que nos aquejan muy rápidamente en ese aspecto y en mi caso propuse llevar el proyecto para hoy a mas tardar mañana viernes , pero como te digo y sin embargo ante todo muchas gracias.

Te comento que dentro de mi desesperación y buscando y buscando y preguntando por aquí y por allá esto fue lo que obtuve.

SELECT dbf_pagos

vDate = 0
FOR nRegistros = 1 to 18
vDate = vDate + 7
insert into dbf_pagos(fechapago) values(DATE() + vDate)
ENDFOR

y básicamente es lo que necesito que de sopetón inserte los 18

en mi código originalmente la fecha la llamaba del textbox que es la fecha actual o bueno que en ese momento es actual

y repetía el insert afuera del for y dentro de el que era lo que no quería, y si también funcional, como se dice hay muchas maneras para matar una mosca. ahora bien te quiero preguntar sobre el código que me hiciste favor de enviar el tableupdate que yo generalmente lo uso como tableupdate(.t.) pero en tu caso por que (f) ya en la practica cual es la diferencia y/o el beneficio?

Saludos y nuevamente gracias :)

Ahh t aclaro, je je no soy ingeniero. Mi profesión formal es contaduría publica... pero desde que tuve contacto con foxpro en 2009, por medio de un amigo, supe que mi vocacion y gran pasión era la programación en fox! :D :D :) Estoy aquí para ayudarles en lo que mas pueda. Una vez... yo empece a programar en VFP y no sabia absolutamente nada, era el 2009 y tenia 19 años apenas. Recurrí a este foro y todos fueron muy gentiles conmigo al ayudarme con mis dudas. Ahora (no es que sepa mucho claro je je) estoy un poco mejor preparado y pretendo ayudar a otros con sus dudas. Te aseguro que una buena parte de las cosas que he aprendido han sido por las consultas que ustedes, los usuarios, me han echo, así que el agradecido soy yo. :D :D

Bueno... TABLEUPDATE actualiza los cambios sobre un registro o sobre una tabla. Si usas (.T.) Se actualizan todos los registros de la tabla. Pero si usas (.F.), se actualiza solo el registro actual en donde estas posicionado. ¿Por qué esto? Fácil. Si trabajas en red... o hay algún otro usuario editando algún registro sobre la misma tabla que tu y aplicas VOS un update sobre toda la tabla, los cambios que el otro usuario aun no ha confirmado, se actualizaran. Por eso, es mejor limitarte a guardar los cambios sobre tu registro solamente.

Cualquier cosa, estoy a la orden par ayudarte en lo que mas pueda! :D

Un abrazo.

Desde MANAGUA, capital de Nicaragua

Ravenn :D :D :D

Ok pues todo muy interesante, si el mundo de la programación es fascinante je je je pues bueno pues muchas gracias, mucha suerte y estamos en contacto, muy amable de tu parte el apoyo que me proporcionaste, si se me sigue atorando acá en el proyecto no dudaré en preguntarte.

Hasta pronto, un abrazo.
Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas