como validar una fecha erronea en un GET

como validar una fecha erronea en un GET

Postby Patricio Avalos Aguirre » Sat May 30, 2015 4: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
User avatar
Patricio Avalos Aguirre
 
Posts: 1060
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

Re: como validar una fecha erronea en un GET

Postby joseluisysturiz » Sat May 30, 2015 7:21 pm

Intenta definiendo la VAR asi TuVar := CTOD(" / / "), saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: como validar una fecha erronea en un GET

Postby antolin » Mon Jun 01, 2015 8:57 am

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
Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55
antolin
 
Posts: 498
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: como validar una fecha erronea en un GET

Postby Patricio Avalos Aguirre » 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
User avatar
Patricio Avalos Aguirre
 
Posts: 1060
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 59 guests