Actuliazar datos
**** Bueno este procedimiento me funciona pero no del todo, yo quiero filtrar la informacion por fechas y guardarla en una tabla con la cual hago un reporte, pero durante el procedimiento me filtra bien pero a la hora de guardar la informacion solo me guarda un dato aunque hayan 3 o mas datos a la hora de filtar.
aqui esta el procedimiento.
********************************************////temppagos es donde guardo lo que filtro-.
set exclusive on
USE C:\controlalumnos\temppagos IN 0 AGAIN
delete all
CLOSE TABLES all
set exclusive on
USE C:\controlalumnos\temppagos IN 0 AGAIN
pack
close table all
set exclusive on
USE C:\controlalumnos\temppagos IN 0 AGAIN
go top
SCATTER MEMVAR BLANK MEMO
append blank
close table all
*********////////***PROCEDIMIENTO PARA LIMPIAR SIEMPRE MI TABLA PARA REPORTES
USE C:\controlalumnos\dbf\alumnos IN 0 AGAIN
USE C:\controlalumnos\dbf\pagos IN 0 AGAIN
use c:\controlalumnos\rangofecha in 0 again
use c:\controlalumnos\temppagos in 0 again
update pagos set fecha1 = rangofecha.f1
update pagos set fecha2 = rangofecha.f2
*************///ABRE LAS TABLAS QUE SE VAN A USAR
PUBLIC contador as Integer
PUBLIC i as Integer
contador = 0
********VARIABLES
SET EXCLUSIVE ON
USE C:\controlalumnos\dbf\pagos IN 0 AGAIn
SELECT boleta, count(boleta) as registro FROM pagos,rangofecha WHERE fecha between f1 AND f2 GROUP BY boleta;
into CURSOR regis
i = regis.registro
******////LA IDEA CON ESTE PROCEDIMIENTO ES FILTRAR POR FECHA MI TABLA DE PAGOS Y SACAR CUANTOS REGISTROS HAY Y GUARDARLOS EN MI VARIABLE i y eso lo hace bien-
*****************************
select nombrep,monto,fecha,boleta from pagos,rangofecha where fecha between f1 and f2;
into cursor pag
*****************INFORMACION OBTENIDA POR LA TABLA PAGOS Y GUARDADA EN UNA TEMPORAL LLAMDA PAG
SELECT telefono1,telefono2,telefono3,status FROM alumnos,rangofecha,pagos WHERE fecha between f1 AND f2;
into CURSOR alum
********************INFORMACION OBTENIDA POR LA TABLA ALUMNOS Y GUARDADA EN UNA TEMPORAL LLAMADA ALUM
FOR contador = contador TO i
*****//////LA IDEA CON ESTE FOR ES QUE PASE LAS VECES O EL NUMERO DE REGISTROS QUE TENGA LA TABLA Y LOS VAYA INSERTANDO A LA TABLA FISICA DE DONDE SACO MI REPORTE pero es DONDE INSERTA MAL Y SOLO ME INSERTA UNO DATO EL NUMERO DE VECES QUE TENGO EL REGISTRO.
INSERT INTO temppagos (nombre,monto,fecha,boleta) VALUES (pag.nombrep,pag.monto,pag.fecha, pag.boleta)
SKIP
UPDATE temppagos SET telefono1 = alum.telefono1 WHERE temppagos.boleta = pag.boleta
UPDATE temppagos SET telefono2 = alum.telefono2 WHERE temppagos.boleta = pag.boleta
UPDATE temppagos SET telefono3 = alum.telefono3 WHERE temppagos.boleta = pag.boleta
UPDATE temppagos SET status = alum.status WHERE temppagos.nombre = pag.boleta
***************inseta datos de pagos
endfor
****************finaliza el for de pagos
*REPORT FORM c:\controlalumnos\informes\temppagos2.frx ALL ENVIRONMENT preview NOEJECT NOCONSOLE TO PRINTER RANGE 1,999
thisform.check5.value = 0
thisform.salir.setfocus
///********** BUENO ESPERO ME PUEDAS AYUDAR Y CORREGIRME EN DONDE ESTOY FALLANDO GRACIAS.
aqui esta el procedimiento.
********************************************////temppagos es donde guardo lo que filtro-.
set exclusive on
USE C:\controlalumnos\temppagos IN 0 AGAIN
delete all
CLOSE TABLES all
set exclusive on
USE C:\controlalumnos\temppagos IN 0 AGAIN
pack
close table all
set exclusive on
USE C:\controlalumnos\temppagos IN 0 AGAIN
go top
SCATTER MEMVAR BLANK MEMO
append blank
close table all
*********////////***PROCEDIMIENTO PARA LIMPIAR SIEMPRE MI TABLA PARA REPORTES
USE C:\controlalumnos\dbf\alumnos IN 0 AGAIN
USE C:\controlalumnos\dbf\pagos IN 0 AGAIN
use c:\controlalumnos\rangofecha in 0 again
use c:\controlalumnos\temppagos in 0 again
update pagos set fecha1 = rangofecha.f1
update pagos set fecha2 = rangofecha.f2
*************///ABRE LAS TABLAS QUE SE VAN A USAR
PUBLIC contador as Integer
PUBLIC i as Integer
contador = 0
********VARIABLES
SET EXCLUSIVE ON
USE C:\controlalumnos\dbf\pagos IN 0 AGAIn
SELECT boleta, count(boleta) as registro FROM pagos,rangofecha WHERE fecha between f1 AND f2 GROUP BY boleta;
into CURSOR regis
i = regis.registro
******////LA IDEA CON ESTE PROCEDIMIENTO ES FILTRAR POR FECHA MI TABLA DE PAGOS Y SACAR CUANTOS REGISTROS HAY Y GUARDARLOS EN MI VARIABLE i y eso lo hace bien-
*****************************
select nombrep,monto,fecha,boleta from pagos,rangofecha where fecha between f1 and f2;
into cursor pag
*****************INFORMACION OBTENIDA POR LA TABLA PAGOS Y GUARDADA EN UNA TEMPORAL LLAMDA PAG
SELECT telefono1,telefono2,telefono3,status FROM alumnos,rangofecha,pagos WHERE fecha between f1 AND f2;
into CURSOR alum
********************INFORMACION OBTENIDA POR LA TABLA ALUMNOS Y GUARDADA EN UNA TEMPORAL LLAMADA ALUM
FOR contador = contador TO i
*****//////LA IDEA CON ESTE FOR ES QUE PASE LAS VECES O EL NUMERO DE REGISTROS QUE TENGA LA TABLA Y LOS VAYA INSERTANDO A LA TABLA FISICA DE DONDE SACO MI REPORTE pero es DONDE INSERTA MAL Y SOLO ME INSERTA UNO DATO EL NUMERO DE VECES QUE TENGO EL REGISTRO.
INSERT INTO temppagos (nombre,monto,fecha,boleta) VALUES (pag.nombrep,pag.monto,pag.fecha, pag.boleta)
SKIP
UPDATE temppagos SET telefono1 = alum.telefono1 WHERE temppagos.boleta = pag.boleta
UPDATE temppagos SET telefono2 = alum.telefono2 WHERE temppagos.boleta = pag.boleta
UPDATE temppagos SET telefono3 = alum.telefono3 WHERE temppagos.boleta = pag.boleta
UPDATE temppagos SET status = alum.status WHERE temppagos.nombre = pag.boleta
***************inseta datos de pagos
endfor
****************finaliza el for de pagos
*REPORT FORM c:\controlalumnos\informes\temppagos2.frx ALL ENVIRONMENT preview NOEJECT NOCONSOLE TO PRINTER RANGE 1,999
thisform.check5.value = 0
thisform.salir.setfocus
///********** BUENO ESPERO ME PUEDAS AYUDAR Y CORREGIRME EN DONDE ESTOY FALLANDO GRACIAS.
1 respuesta
Respuesta de miraestemar
1