Public Function IsEventExchangable(ByVal EventIDA As Long, ByVal EventIDB As Long) As Boolean
…………………………
Dim nSaveWeekDay As Integer
Dim nSavePeriodA As Integer 要調課的節次
Dim nSaveWeekDayB As Integer
Dim nSavePeriodB As Integer 要比對的節次
…………………………
Set evtA=mCEvents(CStr(EventIDA)) Ex:1320280,要調課的節次ID
Set evtB=mCEvents(CStr(EventIDB)) Ex:1320274,從第一節開始的節次ID
If evtA.Length <> evtB.Length Then Exit Function 節次長度判斷
…………………………
If nSaveWeekDayA <> 0 Then ReleaseEvent evtA 儲存原本的星期及節次
If nSaveWeekDayB <> 0 Then ReleaseEvent evtB 儲存原本的星期及節次
If nSaveWeekDayB <> 0 Then
If TestSchedule(evtA, nSaveWeekDayB, nSavePeriodB) = 0 Then IsEventExchangable = True
End If
If IsEventExchangable And nSaveWeekDayA <> 0 Then
If TestSchedule(evtB, nSaveWeekDayA, nSavePeriodA) <> 0 Then IsEventExchangable = False
End If
If nSaveWeekDayA <> 0 Then
If TestSchedule(evtA, nSaveWeekDayA, nSavePeriodA) = 0 Then AllocEvent
End If
If nSaveWeekDayB <> 0 Then
If TestSchedule(evtB, nSaveWeekDayB, nSavePeriodB) = 0 Then AllocEvent
End If
End Function |