Solved

validate inputbox to see if the field entered is a date field

Posted on 2006-06-27
11
1,094 Views
Last Modified: 2013-12-18
Hi,

I've a lotusscript agent, that asks for user input: the user should input date only.

xStatusIdate$ = Inputbox("Please enter a valid Inactive Until Date in the following format: MM/DD/YYYY.")            
                Dim datetime As notesdatetime
                Dim datetime1 As notesdatetime
      Set datetime=New notesdatetime(xStatus$)
      Set datetime1=New notesdatetime(Now)
      If Cdat(datetime.dateonly) <=  Cdat(datetime1.dateonly) Then
                      Messagebox "Inactive Until Date should be greater than today's
                      date.",,"distribution tier1 database"
                      Exit Sub
                End If                        

How do i force the user to input the data in MM/DD/YYYY format.
I've to also check if the user is inputting the field in date format only.
or can i've a popup box with a date drop down to select?

please advise
thanks
sri
0
Comment
Question by:sridevi911
  • 3
  • 3
  • 2
  • +1
11 Comments
 
LVL 63

Accepted Solution

by:
SysExpert earned 50 total points
Comment Utility
You can use a popup Calendar, change the field to Date/TIme, and choose the Calendar control as the style.

The Second Tab will allow you tochoose formatting.

I hope this helps !
0
 

Author Comment

by:sridevi911
Comment Utility
can you please provide a lotusscript example for calender control style.

thanks
0
 

Author Comment

by:sridevi911
Comment Utility
oh by the way this is an input box. not a form entry field in the actual form.
this value in the inputbox will be saved into a date field in the form.
hope i'm clear.
0
 
LVL 43

Expert Comment

by:Steve Knight
Comment Utility
You could check the format using a LIKE operation, i.e. something like

if xStatusIDate$ LIKE "##[/]##[/]####" then
   Process date...
else
   ask again...
end if

But I think you'd be better off just converting it to a date and see if you get an error or using IsDate(xStatusIdate$) to check it is a valid formatted date.

Steve
0
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 
LVL 18

Expert Comment

by:marilyng
Comment Utility
Just a quick comment - input boxes are rather awkward tools to present to end users.  

Questions: is there some reason why you have user's entering a date in an input box rather than on the form itself?
 --Then do as sysExpert suggests and make the field on the form an OS calendar style field, and set it to collect a date only.  Then in the input translation, you can set the format, and in the validation events, check to be sure the date is later than today's date.

As sysexpert suggests, far easier than writing a bunch of script.

----------------
If you wanted to write a bunch of script, then you should create a small form with that one OS Calendar Control field on it, with the same name as the field on the form.   If you have a button that does: @DialogBox, it will present the dialog box.  YOu can keep it open until the user enters a correct date, and when they do and don't click cancel, the dialog box closes and populates the field with the new date.

---Again, no fancy script .  Check @DialogBox in  Developer Help, and "Creating a graphical display for Date/Time fields" "Calendar/Time control."  << you don't need  lotus script to display the control. :)
 
---
Another fun tool: Embedding a date picker  
0
 
LVL 43

Expert Comment

by:Steve Knight
Comment Utility
I would go for a Dialog box as marilyng suggested too if I were writing an app for end users to be honest - it's much neater and less prone to user error.

Steve
0
 

Author Comment

by:sridevi911
Comment Utility
hi i understand about the dialogbox.

but let me explain you the situation here.
this is a big agent that has lot of other code. the user will basically click on a button in a parent document and will change the status to inactive.
so when the status of the parent document is changed to inactive, the agent has lot of other code to change the child documents to inactive status too.

one part of the code is this inputbox. when the user changes the status to inactive, it will ask for inputting a valid date.
now, i guess i can do two things here.  one validate it using
If xStatusIDate$ LIKE "##[/]##[/]####"    or
completely get away from inputbox and use the dialogbox method.
I cannot use formula language here since there is lot of other code in here.

can you please suggest me some examples of dialog box method to show a pop up calender.

thanks
0
 
LVL 18

Assisted Solution

by:marilyng
marilyng earned 50 total points
Comment Utility
Plenty of samples in Designer Help!  

-------------------------------

flag = notesUIWorkspace.DialogBox( form$ , [autoHorzFit] , [autoVertFit] , [noCancel] , [noNewFields] , [noFieldUpdate] , [readOnly] , [title$] , [notesDocument] , [sizeToTable] , [noOkCancel] , [okCancelAtBottom] )


So you instantiate the dialog box document
set doc = uidoc.document
set dialogdoc = db.createdocument
with dialogdoc
   ' prefill with any essential information that you want
   .form = "thisForm"
   .another field = doc.thisOtherField(0)
   .computewithform false, false
end with
 
Dim result as variant
set result = ws.dialogbox("thisForm",true, true,true,true,false,false,"Here is a dialog box",dialogdoc, true)
'Boolean. Returns True if the user clicks OK in the dialog box. Returns False if the user clicks Cancel.
if not result then exit sub

----------------------

'Now the nice thing is that in the dialog box you can not let the user press OK until they've entered a correct date.

The input box you'd have to try and specify the format, and then you're limited at best with instructions.  Spend some time in designer help.. good example
0
 
LVL 43

Expert Comment

by:Steve Knight
Comment Utility
Dialog boxes make nice professional looking app IMHO and much better idea than parsing text to check dates.  They are redicuously easy in formula and not exactly complicated in script, once you have one drawn up with proper form colours and table layout etc. a new dialog takes minutes to bang out. Have a play :-)
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Problem "Can you help me recover my changes?  I double-clicked the attachment, made changes, and then hit Save before closing it.  But when I try to re-open it, my changes are missing!"    Solution This solution opens the Outlook Secure Temp Fold…
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…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

744 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

15 Experts available now in Live!

Get 1:1 Help Now