FoxPro/Visual FoxPro - Problema con ciclo for

 
Vista:

Problema con ciclo for

Publicado por Marcelo (70 intervenciones) el 04/02/2013 22:29:47
Amigos...tengo otro problemita...se trata de lo siguiente, gracias a todos por su tiempo de

antemano.

Tengo que obtener un informe de datos filtrado por fecha (mes, año), fecha inicial hasta fecha final, solo mes y año.
Mi problema se presenta cuando pido consultar por ejemplo Diciembre 2011 hast Enero 2011, no me trae los datos, pero si pregunto cuando el mes (inicial) es menor al final no presenta el problema, como lo puedo solucionar?...

este es el codigo que tengo

m_mes : mes inicial
m_mes2 : mes final
m_ano : año inicial
m_ano2 : año final

FOR j = m_ano TO m_ano2 STEP 1
FOR mes = 1 TO 12 STEP 1
***********FOR mes = m_mes TO m_mes2 STEP 1

thisform.datos && aqui mando a hacer el select preguntando igualando el año a j y el mes

GO TOP IN selcli
DO WHILE !EOF('selcli')
IF YEAR(selcli.fecha) = j .and. MONTH(selcli.fecha) = mes
m_tar = m_tar + 1
m_aflu = m_aflu + selcli.afluencia
endif
SKIP 1 IN selcli
ENDDO
******************Aqui grabo los datos

Gracias nuevamente.
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
Imágen de perfil de Mauricio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Problema con ciclo for

Publicado por Mauricio (1541 intervenciones) el 04/02/2013 23:39:45
Marcelo, para serte sincero este problema no es nuevecito, ya tiene rato de estar por aca y por alla.
Te puedo ayudar de la siguiente manera: Porque no le añades a la fecha inicial el dia 01 y a la fecha final (mes/año) tambien le añades 31, 30,29 el dia que quieras y entonces ya no te dara problema de busqueda y en el select lo tendrias asi:
fec_inicio = CTOD("01/10/2011")
fec_final = CTOD("25/06/2012")
SELECT * FROM mi_tabla WHERE BETWEEN(fecha.mi_tabla,fec_inicio,fec_final)
Pruebalo y avisas si te funciono....
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
Imágen de perfil de Edgar Zambrano
Val: 2
Ha aumentado su posición en 36 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Problema con ciclo for

Publicado por Edgar Zambrano (72 intervenciones) el 06/02/2013 22:09:04
bueno segun lo que comentas deberias realizar ante todo una validación para que la fecha final no sea menor a la inicial, ahora para obtener los datos mediante un select con solo el mes y año de fecha inicial y final puedes hacerlo de esta forma


1
='editor_indent'>select * from tabla1 where between(month(fecha),month(fechaInicial),month(fechaFinal)) and between(year(fecha),year(fechaInicial),year(fechaFinal)) into cursor connsulta
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