Solved

Match today's date with dates in NotesDocument field

Posted on 2011-02-24
8
928 Views
Last Modified: 2013-12-18
Lotus Notes repeating calendar entries store their repeating dates in a field named RepeatInstanceDates.

With @Formula, I can use @IsMember to find if a value is in a list, but the members of RepeatInstanceDates are dates in the format 02/21/2011 05:15:00 PM CST, however I only want to match against the date portion, 02/21/2011.

Is there any way of doing this in the @Formula language?
0
Comment
Question by:jlalande
  • 5
  • 3
8 Comments
 
LVL 46

Accepted Solution

by:
Sjef Bosman earned 500 total points
Comment Utility
I can't check right now, but I suppose the field RepeatInstanceDates contains a date value, not a string. Let's also assume your date x is a date value.

To check whether date x is in the field, try this condition (can be used in the query):
      @Text(x; "D0S0")=@Text(RepeatInstanceDates; "D0S0")
which is shorthand for
      @IsMember(@Text(x; "D0S0"); @Text(RepeatInstanceDates; "D0S0"))
0
 

Author Comment

by:jlalande
Comment Utility
I've tried both and neither work for me.

If I already have the date in string format, is @Text(x; "D0S0") needed?  If not, what format should the date string 'x' be in?  I am assuming that D0S0 is a format argument.

Looking over this it looks like you are taking a list of dates and converting it to a list of strings in the format specified by 'D0S0', and checking if 'x' is in that list.
0
 

Author Comment

by:jlalande
Comment Utility
BTW, I am working in C# using the Domino COM Toolkit.
0
 

Author Comment

by:jlalande
Comment Utility
Actually, I think we're almost there.  I replaced 'x' with @Today and now get matches.  However, where I only have one repeating meeting today, I am getting four.

The other three are likely bookkeeping entries.  Is there a way to filter these out?
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Author Closing Comment

by:jlalande
Comment Utility
Actually, there were two repeating calendar entries for today.  I found a filter that works by checking if a field RepeatUnit exists using @IsAvailable.  This returns a valid set of calendar entries for today.

My complete query string looks like:

Form = "Appointment" & Repeats = "1" & (AppointmentType = "3" | AppointmentType = "2") & @IsAvailable(RepeatUnit) & NoticeType != "C" & NoticeType != "R" & @IsMember(@Text(@Today; "D0S0"); @Text(RepeatInstanceDates; "D0S0"))

Can you see anything that could be done better or faster?

Thanks so much!
0
 
LVL 46

Expert Comment

by:Sjef Bosman
Comment Utility
Probably not much faster, but a little shorter:

Form = "Appointment" & Repeats = "1" & AppointmentType = "3":"2" & @IsAvailable(RepeatUnit) & !(NoticeType= "C":"R") & @IsMember(@Text(@Today; "D0S0"); @Text(RepeatInstanceDates; "D0S0"))
0
 

Author Comment

by:jlalande
Comment Utility
I adopted your changes and added support for additionally getting today's non-repeating calendar entries, thereby completing the solution to retrieve all of the meetings scheduled for today, repeating and non-repeating:

Form = "Appointment" & AppointmentType = "3":"2" & !(NoticeType = "C":"R")
   & ((Repeats = "1" & @IsAvailable(RepeatUnit) & @IsMember(@Text(@Today; "D0S0"); @Text(RepeatInstanceDates; "D0S0")))
         | (!@IsAvailable(Repeats) & @Text(@Today; "D0S0") = @Text(STARTDATETIME; "D0S0")))

Please let me know if I have missed anything.

You've been a great help.  Thank you very much.
0
 
LVL 46

Expert Comment

by:Sjef Bosman
Comment Utility
Looks fine to me. You're doing an excellent job, sir!
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

You’ve got a lotus Domino web server, and you have been told that “leverage browser caching” is a must do. This means that we have to tell the browser everywhere in the web to use cache. In other words, we set (and send) an expiration date in the HT…
'Between' is such a common word we rarely think about it but in SQL it has a very specific definition we should be aware of. While most database vendors will have their own unique phrases to describe it (see references at end) the concept in common …
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

7 Experts available now in Live!

Get 1:1 Help Now