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:51 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 puenteda » Mon Jun 01, 2015 3:11 pm

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

Re: como validar una fecha erronea en un GET

Postby Patricio Avalos Aguirre » Wed Aug 10, 2016 10:01 pm

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  Expand view
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
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 Antonio Linares » Fri Aug 12, 2016 6:59 am

Patricio,

Prueba a comentar estas líneas:

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para CA-Clipper

Who is online

Users browsing this forum: No registered users and 14 guests