como validar una fecha erronea en un GET

Post Reply
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

como validar una fecha erronea en un GET

Post 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?
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
puenteda
Posts: 19
Joined: Thu Oct 02, 2014 3:51 am

Re: como validar una fecha erronea en un GET

Post by puenteda »

Patricio:

El comportamiento normal de la clase tget es retornar .F. en el valid del get (aunque vos no hayas utilizado la clausula VALID en tu definicion del get) y emitir un pitido, por lo que usuario no deberia poder 'salir' del get si la fecha es erronea. Si vos le agregas clausula valid podes poner un cartel de aviso, cambiar el valor del get, etc.

Si lo que queres es que se vacie el get por defecto deberias modificar la clase tget y listo, en por ejemplo (depende de la version de fw que tengas):

METHOD lValid() CLASS TGet

local lRet := .t.

if ::oGet:BadDate

Tone( 100, 3 )
// agregar
if BadDate
::buffer:=CTOD(' / / ')
endif
return .f.

else



Saludos,
Daniel Puente
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Re: como validar una fecha erronea en un GET

Post by Patricio Avalos Aguirre »

Retomando esto

Daniel

Claro antiguamente eso funcionaba ahora no..

en la clase tGet siempre va una fecha valida

he estado dandole vualta a la clase pero no me entrega dicha fecha erronea para enviarselo al usuario
a alguien le sucede

Code: Select all

METHOD lValid() CLASS TGet

   local lRet := .t.

  alert( ::oGet:varget ) // siempre devuelve la ultima fecha valida

//como esta la clase ahora esto estaria de mas
   if ::oGet:BadDate
      ::oGet:KillFocus()
      ::oGet:SetFocus()
      MsgBeep()
      return .f.
   else
      ::oGet:Assign()
      if GetASyncKey( VK_UP ) .or. (GetASyncKey( VK_SHIFT ) .and. !GetASyncKey( VK_RETURN )) //patricio
         return( .t. )
     endif

      if ValType( ::bValid ) == "B"
         lRet := Eval( ::bValid, Self  )
         if ! lRet
            ::oWnd:nLastKey = 0
         endif
      endif
   endif

return lRet
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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: como validar una fecha erronea en un GET

Post by Antonio Linares »

Patricio,

Prueba a comentar estas líneas:

// ::oGet:KillFocus()
// ::oGet:SetFocus()
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply