列公式中的 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)
嗨(抱歉可能重复)。
我正在尝试解决一些过去设计不当的遗留商业数据库的性能问题。
这个数据库中有很多视图,它们都包含公式@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)