Hello,
I have a finish time field in a memorandum agenda form which I would like an alert (message) sent 2 minutes before the finish time expires.
The script has an error message for the "," on line 4.
var vEnd = Time2Num(ActionsEndTime.formattedValue, "HH:MM") // this is the finish time
var vSec = 2 * 60 * 1000 // time in milliseconds - which is 2 minutes
var vFinish = vEnd - vSec // take away the finish time from 2 minutes to give a new time to trigger to alert
var vcurrent = form1.ActionsHeaderFrame.DateTimeField1.formattedValue, "HH:MM") // this is the current time field
form1.ActionsHeaderFrame.DateTimeField1.execCalculate() // recalculate a hidden current time field to give the current time
if vcurrent = Num2Time(vFinish, "HH:MM") then // if the current time equals the finish time - 2 minutes then show message
xfa.host.messageBox("You only have 2 minutes to finish the agenda " ,"Reminder",3,0)
else
""
endif
Can anyone please advise where the formcalc script needs correcting?
Any assistance will be most appreciated ![]()
Views
Replies
Total Likes
Hi,
the fourth line in your code is nonsense.
How the value of DateTimeField1 should be formatted?
You need a function such as Time2Num to convert the date into an integer.
var vcurrent = Time2Num(form1.ActionsHeaderFrame.DateTimeField1.formattedValue, "HH:MM") // this is the current time field
Thank you for your reply.
I have modified the script as you have suggested:
var vEnd = Time2Num(ActionsEndTime.formattedValue, "HH:MM") // this is the finish time
var vSec = 2 * 60 * 1000 // time in milliseconds - which is 2 minutes
var vFinish = vEnd - vSec // take away the finish time from 2 minutes to give a new time to trigger to alert
var vcurrent = Time2Num(DateTimeField1.formattedValue, "HH:MM") // this is the current time field
form1.ActionsHeaderFrame.DateTimeField1.execCalculate() // recalculate a hidden current time field to give the current time
if (vcurrent == Num2Time(vFinish, "HH:MM")) then // if the current time equals the finish time - 2 minutes then show message
xfa.host.messageBox("You only have 2 minutes to finish the agenda " ,"Reminder",3,0)
else
""
endif
I need help with recalculating the current time field as the execCalculate() will update once and remain static.
This is the function in the current time field for the current time - DateTimeField1.rawValue = num2time(Time(), TimeFmt(1))
Is there a way to have the time field show like a system clock time and refresh automatically?
I think this will be the only way I can get the formcalc script to work the way it should.
Any suggestions you may have will be most appreciated.
![]()
Views
Replies
Total Likes
Hi,
you can put this FormCalc script into the layout:ready event.
$ = Num2Time(Time(), "HH:MM:SS")
thank you for your help.
I have changed the current time field form calc script to a form ready javascript to show a clock with the current time:
pathToField
="xfa.form.form1.ActionsHeaderFrame.clock";var t = app.setInterval("obj=new Date();"+pathToField+".rawValue=obj.getHours()+':'+obj.getMinutes()+':'+obj.getSeconds();", 1000);
I have changed the formcalc script to suit, but the alert is still not coming up 2 minutes before the finish time.
var vEnd = Time2Num(ActionsEndTime.formattedValue, "HH:M:SS") // this is the finish time
var vSec = 2 * 60 * 1000 // time in milliseconds - which is 2 minutes
var vFinish = vEnd - vSec // take away the finish time from 2 minutes to give a new time to trigger to alert
var vcurrent = Time2Num(clock.formattedValue, "HH:M:SS") // this is the current time clock field
if (vcurrent == Num2Time(vFinish, "HH:M:SS")) then // if the current time equals the finish time - 2 minutes then show message
xfa.host.messageBox("You only have 2 minutes to finish the agenda " ,"Reminder",3,0)
else
""
endif
(also the clock stops running after 6 seconds)?
If you can provide any assistance I would be very grateful.
Thankyou very much.
![]()
Views
Replies
Total Likes
Did you ever get the messaging to work properly if so could you share the code?
Views
Replies
Total Likes