FoxPro/Visual FoxPro - LLENAR COMBO CON FECHAS

 
Vista:

LLENAR COMBO CON FECHAS

Publicado por Jose Ignacio Lozano (1 intervención) el 13/03/2008 21:57:57
necesito llenar tres combos

COMBO1.- en el contendran diaez años antes del aactual y diez años despues del actual es desir 1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,
2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2017

COMBO2 deve contener los meses enero febrero merzo etc.

COMBO3.- deve contener los dias ejem 1,2,3,4,5,6,7,8 etc. solo que este se deve activar cuando sean año visiesto es desir en el mes de febrero solo deven aparecer 28 dias y cuando sea año bisiesto 29

les agradeseria si pudieran ayudarme me urge para presentar un proyecto en este mes.

mi correo es [email protected]
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

RE:LLENAR COMBO CON FECHAS

Publicado por Gabriel (427 intervenciones) el 14/03/2008 22:08:56
Amigo Jose Ignacio :

Aqui te muestro una solucion a tus 2 preguntas. Queda en ti el adaptarlas...

* Solucion Combo 1

df = DATE() - 30
FOR ni = 1 TO 61
THIS.AddItem(CTOD(df))
df = df + 1
ENDFOR

* Solucion Combo 2

CREATE CURSOR Mes (idMes N(2), cMes C(30))

FOR R=1 TO 12
INSERT INTO MES (idMes, cMes );
VALUES (R, CMONTH(GOMONTH(DATE(),R-1)))
ENDFOR

Solo faltaria cargar los datos (Meses) de la tabla al ComboBox

* Solucion Comobo 3

Tomando la misma logica podras hallar la solucion a esta pregunta...

Saludos,

GABRIEL
(Lima-Perú)
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

RE:LLENAR COMBO CON FECHAS

Publicado por Bosco Garita (10 intervenciones) el 18/03/2008 17:59:42
Estimado amigo ahí te mando en tu correo el problema ya resuelto.
Es un archivo comprimido con WinRar.

Pero también aquí están las instrucciones:
En el Init del Form
* Inicializo los combos
STORE 1 TO THISFORM.Combo1.ROWSOURCETYPE, ;
THISFORM.Combo2.ROWSOURCETYPE, THISFORM.Combo3.ROWSOURCETYPE, ;
THISFORM.Combo1.LISTINDEX, ;
THISFORM.Combo2.LISTINDEX, THISFORM.Combo3.LISTINDEX

STORE '' TO THISFORM.Combo1.ROWSOURCE, ;
THISFORM.Combo2.ROWSOURCE, THISFORM.Combo3.ROWSOURCE
STORE 2 TO THISFORM.Combo1.STYLE, ;
THISFORM.Combo2.STYLE, THISFORM.Combo3.STYLE

LOCAL lnI
* Relleno el combo del año
FOR lnI = 1997 TO 2007
THISFORM.Combo1.ROWSOURCE = THISFORM.Combo1.ROWSOURCE + ALLTRIM(STR(lnI))
IF lnI < 2007
THISFORM.Combo1.ROWSOURCE = THISFORM.Combo1.ROWSOURCE + ','
ENDIF
ENDFOR

* Relleno el combo del mes
FOR lnI = 1 TO 12
DO Case
CASE lnI = 1
THISFORM.Combo2.ROWSOURCE = THISFORM.Combo2.ROWSOURCE + 'Enero'
CASE lnI = 2
THISFORM.Combo2.ROWSOURCE = THISFORM.Combo2.ROWSOURCE + 'Febrero'
CASE lnI = 3
THISFORM.Combo2.ROWSOURCE = THISFORM.Combo2.ROWSOURCE + 'Marzo'
CASE lnI = 4
THISFORM.Combo2.ROWSOURCE = THISFORM.Combo2.ROWSOURCE + 'Abril'
CASE lnI = 5
THISFORM.Combo2.ROWSOURCE = THISFORM.Combo2.ROWSOURCE + 'Mayo'
CASE lnI = 6
THISFORM.Combo2.ROWSOURCE = THISFORM.Combo2.ROWSOURCE + 'Junio'
CASE lnI = 7
THISFORM.Combo2.ROWSOURCE = THISFORM.Combo2.ROWSOURCE + 'julio'
CASE lnI = 8
THISFORM.Combo2.ROWSOURCE = THISFORM.Combo2.ROWSOURCE + 'Agosto'
CASE lnI = 9
THISFORM.Combo2.ROWSOURCE = THISFORM.Combo2.ROWSOURCE + 'Setiembre'
CASE lnI = 10
THISFORM.Combo2.ROWSOURCE = THISFORM.Combo2.ROWSOURCE + 'Octubre'
CASE lnI = 11
THISFORM.Combo2.ROWSOURCE = THISFORM.Combo2.ROWSOURCE + 'Noviembre'
CASE lnI = 12
THISFORM.Combo2.ROWSOURCE = THISFORM.Combo2.ROWSOURCE + 'Diciembre'
ENDCASE

IF lnI < 12
THISFORM.Combo2.ROWSOURCE = THISFORM.Combo2.ROWSOURCE + ','
ENDIF
ENDFOR
* El combo del día lo rellenaré en el evento Click del combo2 pero lo corro desde aquí
* para que los datos sean congruentes cuando se visualicen por primera vez
Thisform.Combo2.Click()

* Este mismo evento también debe correrse en el evento click del Combo1. Igual para que
* los datos sean congruentes.

En el click del combo2
LOCAL llEsBisiesto, lnMaxDia, lnI
* Primero determinamos si el año seleccionado es bisiesto
llEsBisiesto = MOD(VAL(THISFORM.Combo1.VALUE),4) = 0

* Luego determino el número máximo de días que tiene el mes seleccionado
IF THIS.LISTINDEX <> 2
lnMaxDia = IIF(INLIST(THIS.LISTINDEX,1,3,5,7,10,12),31,30)
ELSE
IF llEsBisiesto
lnMaxDia = 29
ELSE
lnMaxDia = 28
ENDIF
ENDIF

* Inicializo de nuevo el combo3 y lo cargo con los días correspondientes
THISFORM.Combo3.ROWSOURCE = ''

FOR lnI = 1 TO lnMaxDia
THISFORM.Combo3.ROWSOURCE = THISFORM.Combo3.ROWSOURCE + ALLTRIM(STR(lnI))
IF lnI < lnMaxDia
THISFORM.Combo3.ROWSOURCE = THISFORM.Combo3.ROWSOURCE + ','
ENDIF
ENDFOR

Espero que eso resuelva tu problema.
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

RE:LLENAR COMBO CON FECHAS

Publicado por maximo (2 intervenciones) el 04/08/2008 18:09:01
gracias amigo esta interesant est codigo. quisiera saber como poder realizar un control que tenga la forma de un mapa en visual foxpro 8.0. si lo sabes escribeme a este correo gracias
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