我有三个可编辑的日期/时间字段其中前两个是(Field 1和场2),风格:日历/时间控制。 他们两人都出现时间:小时和分钟,例如:15:51。
第三场也(可编辑),我想显示FIELD1和FIELD2的区别。
例如:如果FIELD1是14:41和Field2是14:30,那么字段3 = 00:11。 我试过字段1字段2,但不工作。 窗体有自动刷新的字段属性。 谢谢!
我有三个可编辑的日期/时间字段其中前两个是(Field 1和场2),风格:日历/时间控制。 他们两人都出现时间:小时和分钟,例如:15:51。
第三场也(可编辑),我想显示FIELD1和FIELD2的区别。
例如:如果FIELD1是14:41和Field2是14:30,那么字段3 = 00:11。 我试过字段1字段2,但不工作。 窗体有自动刷新的字段属性。 谢谢!
你的第三个字段需要计算,不可编辑。
如果它有某些原因可编辑,并且要在其他两个领域都改成了更新,这样做:
创建一个新的领域,并使其计算,用于显示和隐藏。 给它一个这样的公式
@If(field1=null | field2=null; @Return(""); "");
seconds := field1-field2;
hours := @Integer(seconds/3600);
minutes := @Modulo(@Integer(seconds/60); 60);
output := @Right("00" + @Text(hours); 2) + ":" + @Right("00" + @Text(minutes); 2);
@setfield("field3"; output);
@Command([ViewRefreshFields]);
""
菲尔
我写了这个代码,很容易...
字段“开始时间”和“结束时间”:类型日期/时间,使用日历/时间控制,将其设置为只显示时间。 检查属性“运行退出/事件的OnChange价值变动后”。 退出的事件应该是这样的:
Sub Exiting(Source As Field)
Call UpdateDuration()
End Sub
现场“长”:可编辑文本字段,但隐藏的。
现场“dspDuration”:计算用于显示文本字段。 值仅是“持续时间”(不含引号)。
然后添加以下代码到表单全球部分:
Sub UpdateDuration()
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim starttime As NotesDateTime
Dim endtime As NotesDateTime
Dim duration As Integer
Set uidoc = ws.CurrentDocument
'*** Exit if not both times are entered
If uidoc.FieldGetText("StartTime") = "" Then
Exit Sub
Elseif uidoc.FieldGetText("StartTime") = "" Then
Exit Sub
End If
'*** Calculate duration in seconds and update field
Set starttime = New NotesDateTime( uidoc.FieldGetText("StartTime") )
Set endtime = New NotesDateTime( uidoc.FieldGetText("EndTime") )
duration = endtime.TimeDifference( starttime )
Call uidoc.FieldSetText("Duration", Cstr(duration) )
Call uidoc.Refresh()
End Sub
而已。 很简单,不是吗? 如果你想修改输出(持续时间),你可以很容易地做到这一点,也许60更改成分钟的潜水了。
请确保你得到两个日期时间字段之间的区别。 如果需要,你可以使用@TextToTime公式将文本转换为datetime型。
然后,只需减去第二日的第一次约会,你会得到在几秒钟的差异。
然后除以60得到以分钟为单位的差异。