>>>#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>>>>