Page 1 of 1

Captura de fecha

PostPosted: Mon Nov 14, 2005 5:29 pm
by AngelSalom
Hola foro, de nuevo incordiando.
Veréis, una cosita que en clipper+fw no me pasaba y que ahora si, es que cuando se introduce una fecha errónea en un get tipo DATE, el sistema, deja la fecha en blanco y salta al siguiente campo.
El tema es que debería quedarse el get en el mismo campo y no pasar al siguiente.
Se puede evitar esto?
Gracias.

PostPosted: Tue Nov 15, 2005 12:26 am
by Alfredo Arteaga
Para reforzar este probema, no creo que seamos los únicos o tal vez ya plantearon pregunta y repuesta.

Habrá alguien que nos ilumine?!

Gracias.

PostPosted: Tue Nov 15, 2005 3:02 am
by Alfredo Arteaga
Si no es la solución correcta al menos funciona:

METHOD lValid() CLASS TGet

local lRet := .t.

if ::oGet:BadDate
::oGet:Buffer := DtoC(::cOldDate)
::oGet:Assign()
::oGet:KillFocus()
::oGet:SetFocus()
MsgBeep()
return .f.
else
if ValType( ::bValid ) == "B"
lRet := Eval( ::bValid, Self )
if ! lRet
::oWnd:nLastKey = 0
endif
endif
endif

return lRet

Saludos.

PostPosted: Tue Nov 15, 2005 2:19 pm
by AngelSalom
¿Qué valor debería tomar ::coldDate?, ya que no existe esa DATA en la clase get que yo tengo.

Gracias.

PostPosted: Tue Nov 15, 2005 2:24 pm
by AngelSalom
Iniciando ::cOldDate a una fecha válida, sigue saltando el foco del get de la fecha al siguiente.

Sí funciona

PostPosted: Tue Nov 15, 2005 3:12 pm
by Armando
Angel yAlfredo:

Con Harbour .44 y FWH 2.5 March 2005, la validación sí se efectua,
he tratado de meter 30/02/2005 y no sale del get.

Ojo, es con get no con Datepicker.

Saludos, Armando

PostPosted: Tue Nov 15, 2005 3:38 pm
by Alfredo Arteaga
Lo que hice fue agregar el DATA cOldDate y en el método GotFocus() inicializarla a ::cOldDate := ::oGet:Original de esta forma al detectar una fecha no válida la restablece a su valor original (y no permite el avance).