>>#DEFINE DOW_SATURDAY 7 >>#DEFINE DOW_SUNDAY 1 >> >>FUNCTION IsAHoliday >>LPARAMETER dDate >>LOCAL llIsAHoliday >> >> llIsAHoliday = .F. >> DO CASE >> CASE MONTH (dDate) = 12 AND DAY (dDate) = 25 >> llIsAHoliday = .T. >> CASE etc. >> ENDCASE >> RETURN llIsAHoliday >>ENDFUNC >> >>CREATE TABLE DaysOfYear (dYearDate D, lIsWeekend L, lIsHoliday L) >>ldStartDate = {12/31/1998} >>FOR lnDateOffset = 1 TO 365 >> INSERT INTO DaysOfYear (dYearDate, lIsWeekend, lIsHoliday) ; >> VALUES (ldStartDate + lnDateOffset, ; >> INLIST (DOW(ldStartDate + lnDateOffset, DOW_SATURDAY, DOW_SUNDAY), ; >> IsAHoliday (ldStartDate + lnDateOffset)) >>ENDFOR >> >>SELECT YearDate AS dMissDate ; >> FROM DaysOfYear ; >> WHERE NOT llIsWeekend ; >> AND NOT llIsHoliday ; >> AND NOT IN (SELECT dDataDate FROM dDataTable) >>>>
>>>* -- Checking for missing data compared against last data received >>>* -- Check for Friday or Saturday for old and new is Monday date then we're not missing any data >>> if (dow(Record_fm)=2 and Record_fm - PriorRec_To > 3) ; >>> or (dow(Record_fm)<> 2 and Record_fm > PriorRec_To+1) >>> tmpDays = Record_fm - PriorRec_To >>> if m.tmpDays > 1 >>> for i = 1 to m.tmpDays-1 >>>* -- Check against holiday for each missing record && Sundays & Saturdays >>> if dow(PriorRec_To+m.i)<>1 and dow(PriorRec_To+m.i)<>7 ; >>> and !seek(PriorRec_To+m.i,'Holidays') >>> lcTempStr = "May have Missing Recorded data for "+ dtoc(PriorRec_To+m.i)+"." >>> if not m.lcTempStr $ m.tmpNotesStr >>> tmpNotesStr = iif(empty(m.tmpNotesStr),'',m.tmpNotesStr+chr(13)) + m.lcTempStr >>> endif >>> llMDFlag = .t. >>> endif && Missing Data >>> endfor && Going to the next date to check for missing data >>> endif >>> endif && Checks for Fri or Sat and Mon>>>