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