Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lotus notes 如何选择过去7天内的所有文档?_Lotus Notes_Lotus Domino_Lotus Formula - Fatal编程技术网

Lotus notes 如何选择过去7天内的所有文档?

Lotus notes 如何选择过去7天内的所有文档?,lotus-notes,lotus-domino,lotus-formula,Lotus Notes,Lotus Domino,Lotus Formula,我有一个视图选择公式 SELECT @If( @Date(@Now) = @Date(@Created); @All; @False) 我希望它选择过去7天的所有文档,而不仅仅是今天的文档。选择@If(@Date(@Now)

我有一个视图选择公式

SELECT @If( @Date(@Now) = @Date(@Created); @All; @False)  
我希望它选择过去7天的所有文档,而不仅仅是今天的文档。

选择@If(@Date(@Now)<@Date(@Adjust(@Created(),null,null,null,7,null,null));@all;@False)
SELECT @If( @Date(@Now) < @Date(@Adjust(@Created(), null, null, 7, null, null, null)); @All; @False)

您需要非常小心包含日期的视图选择公式

如果你使用“现在”或“现在”,那么Notes/多米诺将总是认为视图中的所有文档都是数据之外的,并且每次访问时都必须重新构建索引。这对于非常小的数据库来说是可以的,但对于较大的数据库来说却是一场灾难

有些人会尝试使用@date(“今天”)这样的公式来解决这个问题。Notes/Domino不会将其视为一个基于日期/时间的公式,因为它不包含@Today或@Now,并且最初会起作用。但您会发现,除非索引完全刷新,否则视图将不会删除旧文档,这可能很难安排

处理此问题的最佳方法是每晚运行一个代理,用正确的固定日期值更新选择公式。Jake Howlett在这方面有一些帖子。

你需要两个部分。 视图选择公式:

SELECT isnotyet7daysOld = @True
以及一个(或两个)代理,该代理在“文档创建或更改时”按计划运行。代理看起来像这样(两者都是)

minDate:=@Adjust(@Today;0;0;-7;0;0;0);
REM“没有未来的文件”;
tmpResult:=@if(minDate以下是我所做的(我使用
@TextToTime(“今天”)
而不是
@Today
来避免根据上述警告重建索引):


顺便说一句,感谢上面的提示。很长一段时间以来,我一直想创建这样的视图。我是一名z/OS系统程序员(大型机),自从“罐装”以来,我每周都要重建此视图以使其最新视图设计公式不是相对日期。我从Notes帮助中的
@Created
示例中获取
@TextToTime
提示(这有一个获取当月文档的示例)。我的Notes客户端是6.5版。

谢谢您的输入!每次访问代理中的视图时,我都需要最新的值。有些数据库有几个GIG,因此我想在这种情况下,我只需要每天运行一到两次。如果您只需要该视图来查找代理的文档,那么可能有更好的方法来执行此操作。例如,我按创建日期查看所有文档是很常见的。您可以在代理中重用该视图,只需循环查看文档,直到您开始查找7天前创建的文档。这很有意义。尽管我不知道如何操作。您所指的视图列出了不同的提要名称。在每个提要名称下,它列出了ate、已处理的文件和错误。当代理运行时,我尝试查找最后一个日期,以及当天的文件和错误总数。现在我已经设置了一个视图,显示创建日期(我现在认为是3小时,而不是7天)另一个列表列出了当天处理的文件和错误。我抓取了最后一个日期并总结了处理的文件和错误。我是否可以使用GetEntry?我正在尝试使用GetAllEntriesByKey(keyarray,False)使用keyarray指定feedname和当前日期。我可以按feedname进行筛选,但它会从2008年开始选择视图中列出的第一个日期,而不是从2009年2月开始。只需在此处添加一条说明,虽然这在技术上是正确的,但使用基于时间的函数(例如@Now)不鼓励使用in-selection公式,尤其是对于大型数据库,尤其是当视图的索引选项设置为“自动”时。
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
SELECT (@Created) >= @Adjust(@TextToTime("Today");0;0;-7;0;0;0)