FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour como validar una fecha erronea en un GET
Posts: 1074
Joined: Fri Oct 07, 2005 01:56 PM
como validar una fecha erronea en un GET
Posted: Sat May 30, 2015 04:55 PM

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?

Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: como validar una fecha erronea en un GET
Posted: Sat May 30, 2015 07:21 PM

Intenta definiendo la VAR asi TuVar := CTOD(" / / "), saludos... :shock:

Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 498
Joined: Thu May 10, 2007 08:30 PM
Re: como validar una fecha erronea en un GET
Posted: Mon Jun 01, 2015 08:57 AM
Patricio, en mi versión de FWH la clase TGET tiene éste método de validación:
Code (fw): Select all Collapse
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 ::BadDate se utiliza para saber si le fecha es correcta o no. Puedes intentar jugar con 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
Peaaaaaso de foro...

FWH 2007 - xHarbour - BCC55
Posts: 1074
Joined: Fri Oct 07, 2005 01:56 PM
Re: como validar una fecha erronea en un GET
Posted: Mon Jun 01, 2015 12:06 PM

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

Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl

Continue the discussion