[code]if event.propertyName == “date”:
from java.util import *
start = event.source.parent.getComponent('startDate').date
end = event.source.date
startYear = system.db.dateFormat(start, "yyyy")
startMonth = system.db.dateFormat(start, "MM" )
startDay = system.db.dateFormat(start, "dd" )
startHour = system.db.dateFormat(start, "HH" )
startMinute = system.db.dateFormat(start, "mm")
startSeconds = system.db.dateFormat(start, "ss" )
calStart = Calendar.getInstance()
calStart.set(Calendar.YEAR, int(startYear))
calStart.set(Calendar.MONTH, int(startMonth)-1)
calStart.set(Calendar.DAY_OF_MONTH, int(startDay))
calStart.set(Calendar.HOUR_OF_DAY, int(startHour))
calStart.set(Calendar.MINUTE, int(startMinute))
calStart.set(Calendar.SECOND, int(startSeconds))
startTime=calStart.getTime()
endYear = system.db.dateFormat(end, "yyyy")
endMonth = system.db.dateFormat(end, "MM" )
endDay = system.db.dateFormat(end, "dd" )
endHour = system.db.dateFormat(end, "HH" )
endMinute = system.db.dateFormat(end, "mm")
endSeconds = system.db.dateFormat(end, "ss" )
calEnd = Calendar.getInstance()
calEnd.set(Calendar.YEAR, int(endYear))
calEnd.set(Calendar.MONTH, int(endMonth)-1)
calEnd.set(Calendar.DAY_OF_MONTH, int(endDay))
calEnd.set(Calendar.HOUR_OF_DAY, int(endHour))
calEnd.set(Calendar.MINUTE, int(endMinute))
calEnd.set(Calendar.SECOND, int(endSeconds))
endTime=calEnd.getTime()
now2 = Calendar.getInstance()
now = now2.getTime()
print "1"
if endTime.after(startTime) and endTime.before(now):
event.source.parent.endDate = endTime
event.source.test = 0
print "2"
elif endTime.after(now):
if event.source.test == 0:
system.gui.messageBox("End Time Cannot Be After Now, Reselect Another End Date","End Date Error" )
event.source.test = 1
event.source.date = event.oldValue
print "3"
elif endTime.before(startTime):
if event.source.test == 0:
system.gui.messageBox("End Time Cannot Be Before Start Time, Reselect Another End Date","End Date Error" )
event.source.date = event.oldValue
event.source.test = 1
event.source.date = event.oldValue
print "4"[/code]
Put the above code in and when the end date is before now etc (good) the console shows:
1,2
When a put in an end date in the future (wrong) the console shows:
1 waits with messageBox displayed, click OK
1,2,3,1 waits with messageBox displayed, click OK
1,2,3
My very limited knowledge of python says that an if elif routine breaks if one ‘if’ is true so how can I ever get 2 followed by a 3???