Listado de deudores

Hola experto el problema es lo siguiente, tengo un programita para realizar prestamos, en mi tabla de prestamos guardo codigo_del_socio, fecha_de_prestamo, fecha_final_prestamo, numero_de_cuota, condición, que se refiere si el socio tiene prestamos "Pendiente" o "Cancelado" etc..., luego tengo un código que me hace un cronograma de pago por fechas y numeros_de_cuotas y lo guardo en otra tabla llamada fech_cuot.

Los resultados son correctos pero solo se puede realizar cada vez que ingreso el código del socio y tengo que buscar uno por uno, lo que necesito es que haga una búsqueda de todos los socios y que muestre como resultado la fecha y cuota de pago a vencerse, espero se entienda lo que necesito gracias de antemano. Envío el código que genero el cronograma.

SELECT fech_cuot
TxtFec_venta= (thisform.text3.value) + 30 &&La fecha de préstamo
nCuota = 1
nMeses = (thisform.text5.value) &&Los meses que quieres desplegar
*- Separo por bloques la fecha
nMes = MONTH(TxtFec_venta)
nDia = DAY(TxtFec_venta)
nAno = YEAR(TxtFec_venta)
nDiaf = DAY(TxtFec_venta)
DO WHILE nMeses >= nCuota
*-Armo la fecha
fec_cuo = ctod(PADL(nDia,2,"0")+"/"+PADL(nMes,2,"0")+"/"+PADL(nAno,4,"0"))
*?fec_cuo
SELECT fech_cuot
**vari1=ctod(fec_cuo)
vari1=(fec_cuo)
APPEND Blank
RLOCK()
REPLA fechas WITH fec_cuo
REPLA cuotas with nCuota
FLUSH
UNLOCK all
SELECT fech_cuot
*-------------------------
nCuota = nCuota + 1
IF nMes = 12
nMes = 1
ELSE
nMes = MONTH(fec_cuo) + 1
ENDIF
** Calcula ultimo día del Mes **
Tufecha = ctod("01"+"/"+PADL(nMes,2,"0")+"/"+PADL(nAno,4,"0"))
nDiaf = DAY(TxtFec_venta)
DO case
CASE nDiaf > 28 and nMes = 2
nDia = 28
CASE nDiaf > 30 and nMes <> 2
nDia = DAY(gomonth(Tufecha - DAY(Tufecha) + 1, 1 )-1) &&Ultimo Día
OTHERWISE
nDia = nDiaf
ENDCASE
*- Sumo si fuera otro año
nAno = YEAR(fec_cuo)
nAno = iif(nMes=1,nAno + 1,nAno)
ENDDO

1 respuesta

Respuesta
1

Espero poder ayudarte! :) A ver... si entiendo bien... lo que necesitas es recorrer la tabla y por cada socio (codigo_del_socio) ejecutar tu búsqueda para armar el cronograma (código que me muestras arriba) y después actualizar la otra tabla! Bien... a como dices... lo tienes que hacer manualemente... es decir " pero solo se puede realizar cada vez que ingreso el código del socio y tengo que buscar uno por uno"! Yo ejecuto rutinas mas o menos parecidas... solo que en lugar de socios.. cargo códigos de productos para armar los cronogramas de vencimiento! Para eso... te propongo una solución sencilla y eficiente! :)

Podes cargar unicamente los códigos de socios en un cursor SELECT y después recorrerlo con SCAN... END SCAN y por cada registro (socio) que se ejecute tu código! Así en un abrir y cerrar de ojos tendrás todos los cálculos cargados en tu tabla!

Algo así:

**--

SELECT DISTINCT(codigo_del_socio) FROM prestamos INTO CURSOR temp1

SELECT temp1

GO TOP

SCAN

**--Copia aquí tu código para generar el cronograma y la actualización de la otra tabla

ENDSCAN

**--

THISFORM.Refresh

**--Fin

Yo tenia este mismo problema! Era para actualizar un kardex y me ha dado excelentes resultados! :)

Proba y me avisas! :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas