如何在Lotus Notes中更改字段时刷新表单?

时间:2015-12-18 17:44:24

标签: javascript lotus-notes

我有一个Lotus Notes客户端表单,它有两个字段:outageDate是日期/时间字段,day​​OfWeek是一个计算字段,根据outageDate的值显示星期几。我可以在退出第一个字段后更新第二个字段,但我想要做的是看第二个字段得到更新,因为第一个字段的值发生了变化。例如,如果我选择12/18/2015作为outageDate,dayOfWeek将显示单词" Friday"。

如果我向上箭头并将字段更改为2015年12月17日,则星期几不会自动更改为"星期四"。它仅在退出字段时更改。我尝试过使用Javascript onChange事件,但这似乎没有效果。

1 个答案:

答案 0 :(得分:1)

稍微修改一下之后,我发现日期/时间字段可以设置为显示一周中的三个字符日,以及月和日:Ddd MM / DD。这是可以接受的。很高兴知道当字段改变值时是否有办法刷新表单。

Display Date properties

经过更多研究后,我发现了IBM Technote

记录一个属性,该属性告诉客户端在字段发生更改时触发OnChange(和Exiting)事件。这解决了我的问题,该技术可用于刷新整个表单。

我真正追求的是当前一个字段发生变化时强制更新第二个字段的能力。

这是显示可以启用的属性的图形:

Lotus Notes field 'beanie' tab

在表单中,相关字段现在将以下代码添加到 OnChange / Lotusscript 事件中:

Sub Onchange(Source As Field)
    Dim dayOfTheWeek(6) As String
    dayOfTheWeek(0) = "Sunday"
    dayOfTheWeek(1) = "Monday"
    dayOfTheWeek(2) = "Tuesday"
    dayOfTheWeek(3) = "Wednesday"
    dayOfTheWeek(4) = "Thursday"
    dayOfTheWeek(5) = "Friday"
    dayOfTheWeek(6) = "Saturday"

    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim wDay As Integer

    Set uidoc = ws.CurrentDocument
    wDay = Weekday( Cdat(uidoc.FieldGetText("outDate")) )

    Call uidoc.FieldSetText("DayOfWeek", dayOfTheWeek(wDay-1) )
End Sub

结果:

Date selected and day of week shown