Link to home
Start Free TrialLog in
Avatar of sridevi911
sridevi911

asked on

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

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
ASKER CERTIFIED SOLUTION
Avatar of SysExpert
SysExpert
Flag of Israel image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of sridevi911
sridevi911

ASKER

can you please provide a lotusscript example for calender control style.

thanks
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.
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
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  
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
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
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
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 :-)