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