列公式中的 Lotus 视图和日期值

Lotus View and Date values in column formula

嗨(抱歉可能重复)。

我正在尝试解决一些过去设计不当的遗留商业数据库的性能问题。

这个数据库中有很多视图,它们都包含公式@Now,@Today在内部公式的视图列中的值,这是增加的Lotus视图 open/refresh 速度(请注意,视图主要选择公式中没有日期操作)。

此数据库中的信息必须始终保持最新和刷新,因此更改视图选项(刷新时间间隔)的解决方案不够好。

我正在尝试创建一个全局文档(或寻找类似的解决方案),它将在晚上使用服务器代理更新一次,并将包含年、月和日的字段,并尝试将此文档添加为每个文档的子表单,所以这个带有年份 e.t.c 的字段在每个文档中都可以访问,所以我可以在我未来的专栏中调用它们 @-formulas 并且每天都会更新这个子表单中的这个字段。

真的是possible/right解决方案吗?我怎样才能做到这一点? 你能给我一些建议吗?解决这个问题的最佳方法是什么?

p.s。我已经阅读了大量关于使用日期时 Lotus Views 性能问题的文章,其中大部分都是关于创建服务器代理的,它将每天更新一次选择公式......但在我的变体中 - 我有一个列中的公式。

谢谢。

2018 年 3 月 3 日更新:

,我了解到我需要使用代理来更新列公式并且这是可能的。 但我也在试图理解为什么在更新视图公式后视图会更快地工作?不太明白这个解决方案。 为什么晚上更新一次性公式后不需要每次都更新视图索引,为什么现在不用这种方式时每次都刷新?

使用代理方法。

每天晚上用NotesViewColumn's Formula属性更改列公式:

Dim column as NotesViewColumn
set column = ...
column.Formula = "your column formula" 

代理背后的想法是避免在列公式中使用 @Today,因为此函数会在每次调用时刷新视图。

示例:

每晚 2 a.m。更改列公式(显示剩余天数)

(@Date(Deadline) - @Today) / 86400

(@Date(Deadline) - @Date(2018; 03; 04)) / 86400

这样您就可以删除 "dangerous" 函数“@Today”,方法是将其替换为公式中的当前日期。

另一种选择是在预定代理中使用 NotesDocumentCollection StampAll() 方法向所有文档添加一个字段。例如:

    dim db as NotesDatabase
    dim dc as NotesDocumentCollection
    dim todayDate as new NotesDateTime("")
    set dc = db.alldocuments() ' Or whatever selection of documents you want.
    set todayDate.localtime = format(Now(),"mm/dd/yyyy")
    call dc.stampall("TodayDate",todayDate)