Solved

Lotus Script for Date Calculation in View Selection

Posted on 2009-05-11
10
1,160 Views
Last Modified: 2013-12-18
Hey Experts, Below I've posted a script I'm using on a view action that will allow the user to select a User and a job, it then modifies the view select formula to reflect the users picks, this is working fine, I need to enhance the script by allowing the user to also pick a date range and getting that into the Select formula: i.e. User selects John, then selects job 123 next should be a prompt for a begin date, then an end date with the end date defaulting to today. Once he has selected this the Select formula should reflect accordingly. Select Form = FormName & User ="John" & JobNumber = "123" & @Adjust (@Date (TimeinDate); 0; 0; -???; 0; 0; 0) = @Date (@Today);
The ??? should reflect the difference in the dates they have selected.....This is probably clear as mud but it's a start...
Modified Script: Allows for selection of Professional and Job Number:
Sub Click(Source As Button)
	Dim session As New NotesSession
	Dim db As NotesDatabase
	Set db = session.CurrentDatabase
	Dim ws As New NotesUIWorkspace	
	Dim UserDbColumn As Variant	
	Dim JobDbColumn As Variant
	UserDbColumn = Evaluate(|@Trim(@Unique(@DbColumn("";"":"";"(TimeByJobSel)";1)))|)	
	GetValue = ws.Prompt(4, "Professional", "Select Professional", "",UserDbColumn)
	If GetValue =  "" Then
		Messagebox "Operation Canceled" ,,"No Professional Selected."
		Exit Sub
	End If
	JobDbColumn = Evaluate(|@Trim(@Unique(@DbColumn("";"":"";"(TimeByJobSel)";2)))|)	
	GetValue1 = ws.Prompt(4, "Client Matter", "Select Job", "",JobDbColumn)
	If GetValue1 =  "" Then
		Messagebox "Operation Canceled" ,,"No Job Selected."
		Exit Sub
	End If
	Dim NewFormula As String
	NewFormula = |SELECT Form = "Timeslip" & From="|& GetValue & |" & JobNumber= "|& GetValue1 & |" |
	Set uiview = ws.CurrentView
	Set view = uiview.View
	view.SelectionFormula = NewFormula
	Call ws.ViewRebuild
	
End Sub

Open in new window

0
Comment
Question by:padillrr
  • 6
  • 4
10 Comments
 
LVL 46

Expert Comment

by:Sjef Bosman
ID: 24363010
Don't use Prompts, instead create a small form and use it in a dialog box.

And why do you modify a view's selection formula?? If it's a private view it won't disturb the others, but for a central view it's not very wise to do. Can't you use db.Search, or db.FtSearch, and a folder??
0
 

Author Comment

by:padillrr
ID: 24364876
The View is doing some calculations on a total, the requirement is to allow the user to select a time period, a person and a job when these are selected the view then displays a total amount of time that person has completed on that specific job. It has been working OK until I was asked to allow for some date ranges i.e. How much time does "Ray" have on job number "1234" from the "1st of May 2009" until "Today"? I tried creating a form but then my view scripts don't work on the embedded view.
0
 
LVL 46

Expert Comment

by:Sjef Bosman
ID: 24365016
Why the embedded view? On the form? That's not what I meant. Create a form with a fixed-size table, put three fields on the form (JobNumber, From and To), show it using a ws.DialogBox(bla-dee-bla, ..., fittotable, tempdoc) and upon return of the call use the fields from tempdoc to update the view formula.
0
Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

 

Author Comment

by:padillrr
ID: 24366979
Got the form done up getting the values I need now how do I pass them onto the Select formula???
0
 
LVL 46

Accepted Solution

by:
Sjef Bosman earned 250 total points
ID: 24370421
So you created a button or so, or an action, that calls the DialogBox, gets the values , etc. When the DialogBox returns, you have all the data in your calling button function, right?

All you need to do now is adapt the formula
              NewFormula = |SELECT Form = "Timeslip" & From="|& GetValue & |" & JobNumber= "|& GetValue1 & |" |
            If dbdoc.StartDate(0)!="" Then
                  NewFormula= NewFormula + | & StartDate>[| + Cstr(dbdoc.StartDate(0) + |]|
            End If
            If dbdoc.EndDate(0)!="" Then
                  NewFormula= NewFormula + | & StartDate<[| + Cstr(dbdoc.EndDate(0) + |]|
            End If
0
 

Author Comment

by:padillrr
ID: 24558536
Sorry project deviated for a while will be back on this on Monday...
0
 

Author Comment

by:padillrr
ID: 24584013
again put onsomething else....I will get to this please do not close!
0
 

Author Comment

by:padillrr
ID: 24659657
Sjef, I took this in a totally different route, look at this question, it will explain what I ended up doing instead.  http://www.experts-exchange.com/Software/Server_Software/Email_Servers/Lotus_Domino/Q_24476889.html

I will award the points for all your help, Thanks
0
 

Author Closing Comment

by:padillrr
ID: 31580366
Thanks Sjef, you always come through!
0
 
LVL 46

Expert Comment

by:Sjef Bosman
ID: 24660952
:-))
0

Featured Post

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This is an old article, please see an updated version of this article, located here: http://www.experts-exchange.com/articles/23619/Notes-8-5x-Windows-7-Notes-info-and-tips.html
Lack of Storage capacity is a common problem that exists in every field of life. Here we are taking the case of Lotus Notes Emails, as we all know that we are totally depend on e-communication i.e. Emails. This article is fully dedicated to resolvin…
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, just open a new email message. In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…

813 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

16 Experts available now in Live!

Get 1:1 Help Now