Page 1 of 1

como validar una fecha erronea en un GET

PostPosted: Sat May 30, 2015 4:55 pm
by Patricio Avalos Aguirre
Estimados

antiguamente cuando uno colocaba una fecha erronea en un get el sistema automaticamente dejaba la fecha vacia para que el usuario la volviera a colocar
pero ahora la deja en el ultimo dia

por ejemplo hoy 30/05/2015 y en el get coloco 31/06/2015 error en fecha pero el sistema deja en 31/05/2015 y eso provoca que el usuario pase sin darse cuenta del error


ahora en el sistema trato de validar dicha fecha pero el valid me pone que el usuario puso 31/05/2015

alguna forma de dejarlo como antes?

Re: como validar una fecha erronea en un GET

PostPosted: Sat May 30, 2015 7:21 pm
by joseluisysturiz
Intenta definiendo la VAR asi TuVar := CTOD(" / / "), saludos... :shock:

Re: como validar una fecha erronea en un GET

PostPosted: Mon Jun 01, 2015 8:57 am
by antolin
Patricio, en mi versión de FWH la clase TGET tiene éste método de validación:
Code: Select all  Expand view
METHOD lValid() CLASS TGet
   local lRet := .t.

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

Indica dos cosas. Primero que si la fecha es errónea, TGET devuelve el foco al GET sin más ni más. Segundo que ::oGet:BadDate se utiliza para saber si le fecha es correcta o no. Puedes intentar jugar con oGet:oGet:BadDate o modificar tu TGET para que devuelva CTOD(" / / ") o DATE() según te convenga.

Si tu FWH es antiguo, como el mío, optaría por modificar la clase TGET y así adaptarla a tus preferencias. Es una manera de actualizarte.

Un saludo

Re: como validar una fecha erronea en un GET

PostPosted: Mon Jun 01, 2015 12:06 pm
by Patricio Avalos Aguirre
Gracias por sus respuestas

1.- Seria una opcion colocar la fecha vacia, por comodidad yo le de dejaba al usuario la fecha de fin de mes, ya que solo puede colocar esas fechas

2.- revisando al parecer no es problema de fw si no de harbour ya que en fw nunca llega una fecha erronea
esta de mas la baddate

3.- Ya para no entorpecer el trabajo lo deje con DTPICKER