选择过去7天内的文件

时间:2013-04-19 15:55:08

标签: lotus-notes lotus-domino lotus

我有一个视图选择公式:

Var :=@If(@IsAvailable(ENVIADO); @If(ENVIADO != "Sim"; "Valido";"");"Valido");
SELECT (Form="Documento"&@Date(Notes_data)>@Date(2013;3;31)&Emissor!=""&DocApagado="Não"&Estado="Definitivo"&@IsUnavailable($Conflict)) & Var = "Valido"

我希望它能够选择过去7天内的所有文件。包括“今天”。

3 个答案:

答案 0 :(得分:1)

首先,没有人会感谢您将日期放入选择公式,因为每次打开视图时都必须重新创建视图索引。最好在每个文档中都有一个“y”或“n”的字段,具体取决于您是否希望在此视图中显示文档。然后每晚运行代理以检查哪些文档符合条件,并相应地设置标记。

但是,如果你必须在你的选择公式中有日期,这是一个建议(同样,它有助于格式化公式,使其更具可读性)。我假设“Notes_data”是相关字段。:

Var :=@If(@IsAvailable(ENVIADO); @If(ENVIADO != "Sim"; "Valido";"");"Valido");
SELECT (
Form="Documento" &
@Date(Notes_data) < @Today &
@Date(Notes_data) > @Adjust(@Today(0;-8;0;0;0;0)) &
Emissor!="" &
DocApagado="Não" &
Estado="Definitivo" &
@IsUnavailable($Conflict)
) & 
Var = "Valido"

但是,正如我之前所说。请不要这样做。

答案 1 :(得分:1)

我的方法是使用@SetViewInfo([SETVIEWFILTER];在视图的postOpen和queryClose事件中。为此,请将您的选择公式更改为:

Var := @If(@IsAvailable(ENVIADO); @If(ENVIADO != "Sim"; "Valido";"");"Valido");
SELECT (Form="Documento" & Emissor!="" & DocApagado="Não" &
        Estado="Definitivo" & @IsUnavailable($Conflict) ) & 
       Var = "Valido"

接下来,在视图的开头添加一列,对其进行排序和分类。给它这个公式:

out := "";
@For(i:=1; i<7; i:=i+1;
    wrkDt := @Adjust(Notes_Data; 0; 0; (i*-1); 0; 0;0);
    tmp1 := @Text(@Year(@Date(wrkDt))) +
        "-" + @Right("00" + @Text(@Month(wrkDt));2) +
        "-" + @Right("00" + @Text(@Day(wrkDt));2);
    out := @Trim(out : tmp1)
);
out

这将导致您希望在给定日期显示的每个文档显示在您希望它出现的每个日期的七个视图类别中。

如果这是一个Web应用程序,您可以使用RestrictToCategory设置来显示今天的文档。如果这是Notes客户端应用程序,请更改View的PostOpen事件以运行公式代码并将其设置为:view to

tmp1 := @Text(@Year(@Today)) +
        "-" + @Right("00" + @Text(@Month(@Today));2) +
        "-" + @Right("00" + @Text(@Day(@Today));2);
@SetViewInfo([SetViewFilter]; tmp1);

现在,您将在打开视图时看到今天的文档。并且它不会经常需要刷新。

注意:即使服务器和客户端使用不同的格式,我也会使用此文本格式确保对任何本地日期显示格式都一样。

一个警告...... SetViewInfo对当前数据库中的所有视图保持有效,因此您应该向除此之外的所有视图的PostOpen事件添加一个清除该值的公式:

@SetViewInfo([SetViewFilter]; "");

快乐编码

/ Newbs

答案 2 :(得分:0)

  

天:=(@今天 - @created)/ 86400;

它将返回从今天和文档创建日期开始的天数。您可以根据您的要求给出条件。