Manage Learn to apply best practices and optimize your operations.

Checking various types of datefields in a Lotus Notes document member Stale Dybsjord provides a LotusScript function that will check different datefields in a Lotus Notes document and return a variety of information, including how one datefield compares to another, as well as datefield size and history changes.

This tip was submitted to the 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
 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" )
  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   
  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.

Dig Deeper on LotusScript

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.




  • iSeries tutorials's tutorials provide in-depth information on the iSeries. Our iSeries tutorials address areas you need to know about...

  • V6R1 upgrade planning checklist

    When upgrading to V6R1, make sure your software will be supported, your programs will function and the correct PTFs have been ...

  • Connecting multiple iSeries systems through DDM

    Working with databases over multiple iSeries systems can be simple when remotely connecting logical partitions with distributed ...