Error en código de Visual Fox Pro al acumular registros
Hola Experto nuevamente tengo un inconveniente, el código anterior funciona muy bien, cuando ingreso la fecha del 01/04/08 al 30/04/08, pero cuando coloco esta fecha ejemplo 15/04/08 al 30/04/08 no muestra acumulados de algunos registros envío código debo tener alguna falla ayúdeme, Gracias de antemano
Nota: primero ingreso la fecha para el acumulado que es desde el WINIAC 01/01/08 al WFIN 30/04/08 con esto tengo acumulados y para totales la fecha que mencionaba lineas arriba del WINI 15/04/08 aL WFIN 30/04/08 es aquí donde en este margen de fecha que no muestra los datos.
winiac = thisform.text13.value
wini = thisform.text1.value
wfin = thisform.text2.value
thisform.grid1.recordsource = ''
thisform.grid1.value = ''
thisform.grid1.REFRESH
************************************* totales *******************************************
SELECT Conlima.pf_afil, Programas.pro_nombre,Conlima.pf_hospi, COUNT(Conlima.pf_sexo)as total ;
FROM analisis!programas INNER JOIN analisis!conlima ;
ON Programas.pf_afil = Conlima.pf_afil ;
where betw(dtoc(conlima.pf_fecha,1),dtoc(wini,1),dtoc(wfin,1)) ;
GROUP BY Conlima.pf_afil;
ORDER BY Conlima.pf_afil;
into cursor compara
**brow
select distin(pf_afil) as pro_codi, 0000000000 as total0, 0000000000 as acumu0 ;
from compara into table tabla
**brow
se le tabla
go top
scan
xprograma = alltrim(pro_codi)
sele compara
do while alltrim(pf_afil) = xprograma
do case
case pf_hospi = ' 0'
xhospi = ' 0'
xtotal0 = total
endcase
sele tabla
do case
case xhospi = ' 0'
replace total0 with xtotal0
Endcase
Se le compara
skip
endd
Se le tabla
ends
**brow
************************************* fin totales ********************************
************************************* acumulados ********************************
SELECT Conlima.pf_afil, Programas.pro_nombre,Conlima.pf_hospi, COUNT(Conlima.pf_sexo)as acumu ;
FROM analisis!programas INNER JOIN analisis!conlima ;
ON Programas.pf_afil = Conlima.pf_afil ;
where betw(dtoc(conlima.pf_fecha,1),dtoc(winiac,1),dtoc(wfin,1)) ;
GROUP BY Conlima.pf_afil;
ORDER BY Conlima.pf_afil;
into cursor compara
**brow
se le tabla
go top
scan
xprograma = alltrim(pro_codi)
sele compara
do while alltrim(pf_afil) = xprograma
do case
case pf_hospi = ' 0'
xhospi = ' 0'
xacumu0 = acumu
endcase
sele tabla
do case
case xhospi = ' 0'
repla acumu0 with xacumu0
Endcase
Se le compara
skip
endd
Se le tabla
ends
**brow
*!* ******************************* fin de acumulados
select iif(seek(pro_codi,'programas','pf_afil'),programas.pro_nombre,' '),*;
from tabla order by 2 into cursor final
selec programas.pro_nombre,*;
from final order by 1 into cursor xx
**brow
selec exp_1_b, total0, acumu0 ;
from xx order by 1 into cursor xxx
thisform.grid1.recordsource = 'xxx'
thisform.grid1.REFRESH
Nota: primero ingreso la fecha para el acumulado que es desde el WINIAC 01/01/08 al WFIN 30/04/08 con esto tengo acumulados y para totales la fecha que mencionaba lineas arriba del WINI 15/04/08 aL WFIN 30/04/08 es aquí donde en este margen de fecha que no muestra los datos.
winiac = thisform.text13.value
wini = thisform.text1.value
wfin = thisform.text2.value
thisform.grid1.recordsource = ''
thisform.grid1.value = ''
thisform.grid1.REFRESH
************************************* totales *******************************************
SELECT Conlima.pf_afil, Programas.pro_nombre,Conlima.pf_hospi, COUNT(Conlima.pf_sexo)as total ;
FROM analisis!programas INNER JOIN analisis!conlima ;
ON Programas.pf_afil = Conlima.pf_afil ;
where betw(dtoc(conlima.pf_fecha,1),dtoc(wini,1),dtoc(wfin,1)) ;
GROUP BY Conlima.pf_afil;
ORDER BY Conlima.pf_afil;
into cursor compara
**brow
select distin(pf_afil) as pro_codi, 0000000000 as total0, 0000000000 as acumu0 ;
from compara into table tabla
**brow
se le tabla
go top
scan
xprograma = alltrim(pro_codi)
sele compara
do while alltrim(pf_afil) = xprograma
do case
case pf_hospi = ' 0'
xhospi = ' 0'
xtotal0 = total
endcase
sele tabla
do case
case xhospi = ' 0'
replace total0 with xtotal0
Endcase
Se le compara
skip
endd
Se le tabla
ends
**brow
************************************* fin totales ********************************
************************************* acumulados ********************************
SELECT Conlima.pf_afil, Programas.pro_nombre,Conlima.pf_hospi, COUNT(Conlima.pf_sexo)as acumu ;
FROM analisis!programas INNER JOIN analisis!conlima ;
ON Programas.pf_afil = Conlima.pf_afil ;
where betw(dtoc(conlima.pf_fecha,1),dtoc(winiac,1),dtoc(wfin,1)) ;
GROUP BY Conlima.pf_afil;
ORDER BY Conlima.pf_afil;
into cursor compara
**brow
se le tabla
go top
scan
xprograma = alltrim(pro_codi)
sele compara
do while alltrim(pf_afil) = xprograma
do case
case pf_hospi = ' 0'
xhospi = ' 0'
xacumu0 = acumu
endcase
sele tabla
do case
case xhospi = ' 0'
repla acumu0 with xacumu0
Endcase
Se le compara
skip
endd
Se le tabla
ends
**brow
*!* ******************************* fin de acumulados
select iif(seek(pro_codi,'programas','pf_afil'),programas.pro_nombre,' '),*;
from tabla order by 2 into cursor final
selec programas.pro_nombre,*;
from final order by 1 into cursor xx
**brow
selec exp_1_b, total0, acumu0 ;
from xx order by 1 into cursor xxx
thisform.grid1.recordsource = 'xxx'
thisform.grid1.REFRESH
1 Respuesta
Respuesta de davsoft
1