This tip was submitted to the SearchDomino.com tip library by member Stale Dybsjord . Please let others know how useful it is via the rating scale at the end of the tip. Do you have a useful Lotus Notes, Domino, Workplace or WebSphere tip or code snippet to share? Submit it to our monthly tip contest and you could win a prize.
This function is great for checking all kinds of datefields in a Lotus Notes document. Some of the things you'll be able to check are:
- How a field's date is compared to another
- If one datefield is larger than another
- How it is smaller than today
- How it is different from today, or in 20 days, etc.
It's easy adding other checks to it as well. This function can examine all different date checks that exist.
Function InfoLineCompareDate (doc As NotesDocument, dateField1 As String, dateField2 As String, dateCheck As String, adjustCheck As String, adjustValue As String) As Integer ' ' Input: ' doc: document where field is ' dateField1: Name of first datefield ' dateField2: Name of seconf datefield. (This can also be set to TodayDateValue then we compare to todays date) ' dateCheck: what comparision should be done. ' adjustCheck: should we adjust somehing first ' adjustValue: how should we adjust it. ' ' Output: true or false ' Change Control: ' ' Use this to get the documents dateItems Dim item1 As NotesItem
Requires Free Membership to View
Register today to access targeted resources from our editorial writers and independent industry experts focused on Lotus Domino, Notes, Workplace and other related technologies.
Dim item2 As notesitem Dim flag As Integer Dim returnValue As Integer Dim tmpString As String ' Get values from document ' t1 and t2 will hold the datetime values Set item1 = doc.getFirstItem(dateField1) Set t1 = item1.DateTimeValue ' check if this is a field or we should use todays date If dateField2 = "TodayDateValue" Then Set t2 = New NotesDateTime( "Today" ) Else Set item2 = doc.getFirstItem(dateField2) Set t2 = item2.DateTimeValue End If returnValue = 0 ' In this check also for check if a date is 10 days in the future from the other date or similar. If adjustvalue <> "" Then Select Case adjustCheck Case "day" Call t2.AdjustDay(adjustValue) Case "month" Call t2.AdjustMonth(adjustValue) Case "year" Call t2.AdjustYear(adjustValue) End Select End If ' What check should we perform Select Case dateCheck Case "<" If Cdat(t1.dateOnly) < Cdat(t2.dateOnly) Then returnValue = 1 End If Case ">" If Cdat(t1.dateOnly) > Cdat(t2.dateOnly) Then returnValue = 1 End If Case "=" If Cdat(t1.dateOnly) = Cdat(t2.dateOnly) Then returnValue = 1 End If Case "<>" If Cdat(t1.dateOnly) <> Cdat(t2.dateOnly) Then returnValue = 1 End If End Select 'return the value depending on above results If returnValue = 1 Then InfoLineCompareDate = True Else InfoLineCompareDate = False End If End Function
And I call this function like this:
If InfoLineCompareDate (doc, "ENDDATE2", "LATE_REDELIVERY_DATE", ">", "day", "+10") = False Then
For this action I want to see if enddate2 + 10 days is greater than late_redelivery_date.
Do you have comments on this tip? Let us know.
This was first published in May 2006