Jump to content
Fivewin Brasil

validar data digitada


edutraini

Recommended Posts

O Programa va falar por si... Abs.

// C:\FWH..\SAMPLES\TRAINDAT.PRG - 16/11/2022 By Joao Santos-Sao Paulo.
	#Include "FiveWin.ch"
	STATIC oDlg, oFont
STATIC lActualiza := .F.
	FUNCTION Main()
	   LOCAL oGet1, oGet2, oGet3
   LOCAL oBtnX2, cTitle, aGrad, oSay1, oBtn, oActualiza
   LOCAL DtSorteo, DtConsulta, DtproxCons, DtUltReg
	   SET CENTURY ON
   SET DATE BRITISH
   SET EPOCH TO YEAR( DATE() ) - 30
	   cTitle     := "Validar Data EduTraini"
   DtUltReg   := CTOD( "11/12/2022" )
   DtSorteo   := CTOD( "12/11/2022" )
   DtConsulta := CTOD( "14/11/2022" )
   DtProxCons := CTOD( "15/11/2022" )
	   DEFINE FONT oFont NAME "TAHOMA" SIZE 0, - 14
	   DEFINE DIALOG oDlg SIZE 600, 200  PIXEL TRUEPIXEL RESIZABLE  ;
      TITLE cTitle COLOR CLR_BLACK, CLR_WHITE TRANSPARENT FONT oFont
	   oDlg:lHelpIcon := .F.
	   @ 12, 10 SAY oSay1 PROMPT "último sorteo en archivo:" SIZE 200, 16 PIXEL ;
      OF oDlg FONT oFont UPDATE
	   @ 32, 10 GET oGet1 VAR DtSorteo SIZE 100, 24 PIXEL OF oDlg FONT oFont   ;
      PICTURE "@D 99/99/9999" CENTER                                       ;
      VALID( VALIDAR_DATA_DIGIT( DtSorteo, oActualiza ) )
	   @ 60, 10 SAY oSay1 PROMPT "Fecha(Date) de consulta:" SIZE 200, 16 PIXEL ;
      OF oDlg FONT oFont UPDATE
	   @ 80, 10 GET oGet2 VAR DtConsulta SIZE 100, 24 PIXEL OF oDlg FONT oFont ;
      PICTURE "@D 99/99/9999" CENTER                                       ;
      VALID( VALIDAR_DATA_DIGIT( DtSorteo, oActualiza ) )
	   @ 106, 10 SAY oSay1 PROMPT "Fecha(Date) Proxima consulta:" SIZE 200, 16 PIXEL ;
      OF oDlg FONT oFont UPDATE
	   @ 128, 10 GET oGet3 VAR DtProxCons SIZE 100, 24 PIXEL OF oDlg FONT oFont ;
      PICTURE "@D 99/99/9999" CENTER                                        ;
      VALID( VALIDAR_DATA_DIGIT( DtSorteo, oActualiza ) )
	   @ 050, 500 BUTTON oActualiza PROMPT 'Actualiza' SIZE 80, 50 PIXEL OF oDlg ;
      ACTION( ACTUALIZA_LOTTO() ) WHEN( lActualiza )
	   @ 120, 500 BUTTON 'Close' SIZE 80, 50 PIXEL OF oDlg ACTION( oDlg:End() )  ;
      CANCEL
	   ACTIVATE DIALOG oDlg CENTERED
	   RELEASE oFont
	RETURN NIL
	FUNCTION VALIDAR_DATA_DIGIT( cDate, oActualiza )
	   IF( cDate ) >= CTOD( "01/01/2000" ) // A Data que voce quiser bloquear.
	      RETURN( .T. ) // Pode passar, data valida.
	   ELSE
	      MsgInfo( "Data Incorreta", "Data Incorreta" )
	   ENDIF
	   IF CDOW( cDate ) = "Saturday" .OR. ;
      CDOW( cDate ) = "Tuesday"
	      lActualiza := .T.
	      RETURN( .T. )
	   ENDIF
	RETURN( .F. )
	FUNCTION ACTUALIZA_LOTTO()
	RETURN NIL

Regards, saludos.

Link to comment
Share on other sites

Em 16/11/2022 at 14:02, edutraini disse:

boa tarde Ale 

engraçado mas se colocar 01/01/1000 da erro usando sqlrdd

 

Edu, no meu sistema eu considero em campos datas ano menor do que 1900 ou maior do que 2100 inválidos. Realmente no SQL SERVER se mandar gravar anos muitos antigos ou muito no futuro dá erro.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...