【问题标题】:How can I refresh a form AS a field is being changed in Lotus Notes?在 Lotus Notes 中更改字段时如何刷新表单?
【发布时间】:2015-12-18 17:44:23
【问题描述】:

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

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

【问题讨论】:

    标签: javascript lotus-notes


    【解决方案1】:

    AFAIK,这是不可能的。而且,在某些情况下甚至可能更糟:当用户键入 Esc 键时,Exiting-事件不会被触发。

    所以:不可能...但是...如果没有技巧,这将不是Notes,尽管很丑陋。我能想到的唯一且非常肮脏的方法是使用 NotesTimer。创建一个 NotesTimer,将其设置为每秒触发一次,以验证字段的先前和当前内容。如果它的值发生变化,您可以尝试进行刷新或将焦点移至其他位置。

    警告:NotesTimers 是有问题的,至少,它们曾经是。我认为移动焦点是安全的,使用刷新只是为了勇敢。

    一个完全不同的解决方案是迁移到 Notes Client 中的 XPages,但我想您(还)不想去那里。

    【讨论】:

    • 你是对的。对于这项工作,XPages 不在考虑范围内。
    【解决方案2】:

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

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

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

    我真正追求的是能够在前一个字段发生更改时强制更新第二个字段。

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

    在表单中,有问题的字段现在在 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
    

    结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 1970-01-01
      • 2016-08-23
      相关资源
      最近更新 更多