4

The LA Fox DeveloDer Newsletter
Auaust 1998
Y2K (Con’t from page 1)
Date; Select All on Entry

This textbox date entry class does the following:
1.
Allows blank dates
2.
Invalid dates
2.1
Displays wait window “Invalid date”
- Accepts 02/29/2000, not 02/29/00
2.2
Will not allow dates before 1900 or after 2100
- Resets to blank
3.
Adds 100 years to any date less than 1920
4.
Status bar (while in field)
4.1
Displays date value, with month in words
- Correct order for Windows date setting
- Refreshes on entry of each digit
4.2
Displays “bad date” as appropriate
4.3
Displays message if date < 1900 or >2100
5.
Tool tip
5.1
“Original date: “+date, month in words, while in field
5.2
Date, month in words, after field has been left
* CLASS DateTextBox.InteractlveChangeO

* Author/Date: Judy Denison 06/26/98
a Description: Sets running status bar display
*
Parameters: None
*
Variables:
a
IcDate
Long date; e.g.: June 26, 1998
a
IdDate
Date In date format
* Returns:
None
Uses:
None
a calls: None
*
Called by: None
LOCAL
lcDate, IdDate
STORE” TO
lcDate
STORE 0 TO
IdDate
a Find correct date, referring to rollover year
WiTH THIS
IF NOT EMPTY(.Value);
AND YEAR(.Value) < .nRolloverYear
IdDate = GOMONTH(.Value, 1200)
aSE
IdDate = Value
ENDIF
ENDWITH

* Long date In Canadian word order If appropriate
a (Canadian settings should be ‘DMY’)
IcDate = IIF(SET(’DATE’) = ‘DMY’,;
DMY(IdDate),
MDY(ldDate))
SET MESSAGE TO lcDate

RflURN
a Author/Date: Judy Denison 06/26/98
a Description: Checks for reasonable year; sets to 21st
*
century if before rollover year
* Parameters: None
a Variables: None
*
lcNotify Original setting of SET NOTIFY
a
lnYear
Year of currently entered date
a Returns: .TJ.F.
* Uses:
None
* Calls: None
* Called by: None


LOCAL
lcNotlfy, lnYear
STORE” TO lcNotlfy
STORE 0 TO lnYear
WiTH THIS
Get old NOTIFY setting
IcNotify = .cNotify

*0K if empty
IF EMPTY(.Value)
.Value = (ll}
a Reset all and leave field
SET MESSAGE TO
.ToolTipText
SET NOTIFY &lcNotify
RETURN .T.

Reset & message if year
* not between 1900 and 2100
lnYear YEAR(.Value)
IF InYear < 1900 OR lnYear> 2100
.Value = (II)
SET MESSAGE TO;
‘Year must be between
+
‘1900 and 2100.’
RETURN .F.
ENDF
Go to 21st century If c Rollover Year
IF lnYear c .nRolloverYear
.Value = GOMONTH(.Value, 1200)
ENDIF

* ToolTip: Long date In Canadian word order
* If appropriate
.ToolTipText lIF(SET(’DATE’) = ‘DMY’,;
DMY(.Value),
MDY(.Value))
* Remove status message on leaving field
SET MESSAGE TO
a Restore NOTIFY to original setting
SET NOTIFY &lcNotify
ENDWITH

RETURN.T.

a End: CLASS DateTextBox.Valid()
a End: CLASS DateTextBox.InteractlveChange()
*
CLASS DateTextBox.When()
CLASS DateTextBox.Valid()
(Con’t, page 5)

4