Problema con wxDatePickerCtrl
damufo
damufo en gmail.com
Vie Dic 11 10:36:53 CET 2009
Hola
Manuel Enrique González Ramírez escribiu:
> Cordial saludo amig en s de la lista.
>
> Este es mi problema:
>
> Tengo un formulario que tiene entre otros, dos controles tipo
> wxDatePickerCtrl con la propiedad wxDP_DROPDOWN denominados fecnace y
> fecceremonia respectivamente.
>
> Dichos controles me muestran en el formulario la fecha con el formato
> dd/mm/aaaa por ejemplo la de hoy (10/12/2009).
>
> La base de datos ya me la han pasado y he notado que el campo al que apuntan
> es un campo tipo date con el formato aaaa-mm-dd.
>
>
> Mi problema:
> No puedo cambiar el formato de la base de datos pues fue algo que me pasaron
> y debo conservar los formatos y he notado que los controles DatePickerCtrl
> me están guardando los datos con el formato mm/dd/aa 00:00:00, bueno, eso lo
> puedo solucionar cambiando el formato con
> self.fecnace.GetValue().Format('%d/%m/%Y').encode().
> Mi problema radica en que la base de datos ya tiene datos y al querer
> recuperar un registro siempre me arrojan error en los DatePickerCtrl, lo he
> intentado de varias formas:
>
> Por ejemplo haciendo un split de la fecha tras recuperar la consulta de
> mysql
> fnace = str(i[9])
> aa = fnace[2:4]
> mm = fnace[5:7]
> dd = fnace[8:10]
>
> fnace = mm+'/'+dd+'/'+aa+' 00:00:00'
>
> self.fecnace.SetValue(fnace)
>
> Y me saca el siguiente error:
> AttributeError: 'f_bautismo' object has no attribute fecnace
>
>
> Alguien que por favor me colabore, quiero poder recuperar un registro
> específico de la base de datos (ya está eso) y que los controles
> DatePickerCtrl cambien su valor según el registro de la base de datos (es lo
> que necesito).
>
>
> Gracias.
>
>
>
En mi caso cuando lo usé hice unas funciones de intermediarias, la fecha
en la base de datos, la guardaba en un campo texto. A ver si te dan
alguna idea.
def fecha_a_texto(valor):
return (str(valor.GetYear()) + str(valor.GetMonth()+1).zfill(2) +
str(valor.GetDay()).zfill(2))
def texto_a_fecha(valor):
ano, mes, dia = (int(valor[0:4]), int(valor[4:6]), int(valor[6:8]))
return wx.DateTimeFromDMY(dia, mes -1, ano)
self.dp_fecha_evento.SetValue(texto_a_fecha(fecha_en_formato_texto))
#dp_fecha_evento es un DatePickerCtrl
fecha_evento = fecha_a_texto(self.tx_fecha_evento.GetValue())
suerte!
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es