我有一个视图选择公式
SELECT @If( @Date(@Now) = @Date(@Created); @All; @False)
我想让它选择过去7天的所有文件,而不仅仅是今天的文件.
你需要2个部分.视图选择公式:
SELECT isnotyet7daysOld = @True
以及按计划运行的代理(或两个)以及"当文档已创建或更改时".代理看起来像这样(两者)
minDate := @Adjust(@Today;0;0;-7;0;0;0); REM "There are no future documents"; tmpResult := @if(minDate <= @Created;@False;@True); SELECT tmpResult != isnotyet7daysOld; FIELD isnotyet7daysOld := tmpResult
对于调整,你需要0不为空; null恰好工作,因为没有名称为null的字段或变量,并且@Formula是宽容的并且使缺失值为0. 这里的技巧:你计算字段isnotyet7daysOld应该对所选文档的值(这将是已更改onChange代理或已调度代理上的所有代理),然后选择仅更改结果不匹配的代理.这样可以最小化文档更新.此外,保存的文档也会直接更新.如果现在添加一个隐藏的计算时间组合字段isnotyet7daysOld,并将@True作为字段值,则可以可靠地捕获所有文档.而且您需要每晚只运行一次预定代理(0:01).
SELECT @If( @Date(@Now) < @Date(@Adjust(@Created(), null, null, 7, null, null, null)); @All; @False)