在视图中查找上次创建的文档

时间:2017-05-12 16:36:46

标签: lotus-domino lotus-formula

我正在尝试在Domino中创建一个视图,以查找每个类别中最后创建的文档。 Domino数据库保存了大学课程报告的记录,我创建了一个视图,第一列为CollegeClass,第二列为DateCreated,第三列为ReportTitle。 CollegeClass列显然可以有多个报表条目,我想要做的是使用DateCreated列上的Lotus Notes公式来显示每个College Class的最后一个报表。我曾尝试过几种方式使用@created但尚未成功。如何过滤此内容仅显示最新报告?

2 个答案:

答案 0 :(得分:1)

您无法通过视图实现此目的。视图中的文档不能依赖于其他文档而隐藏。

答案 1 :(得分:0)

如果这是一个Notes客户端应用程序(也许如果它也是一个Web应用程序),那么最好的办法是制作两个视图。一个显示您想要的内容(除了它显示所有报告,但首先显示最新报告),另一个是具有相同视图列的文件夹。

然后编写一个LotusScript脚本库,该脚本库具有设置/清除此LatestReportInCategory字段的功能,以便第二个视图准确显示您想要的内容。我想这个函数会......

  1. 获取该文件夹中所有文档的NotesViewEntryCollection。(例如Set col = db.GetView("LatestReportsPerCategory").AllEntries

  2. 获取视图的NotesViewNavigator对象。

  3. 使用NotesViewNavigator遍历获取每个类别中的第一个文档并... ...

    Set doc = entry.Document
    doc.PutInFolder "LatestReportsPerCategory"
    col.Subtract doc

  4. 以这种方式浏览视图后,第二个视图中所需的所有文档都会显示在那里,但我们尚未清除所有使用的报告的LatestReportInCategory字段属于第二个视图。但是,所有这些额外文档现在都是NotesDocumentCollection中的唯一文档,因为我们已经减去了所有属于的文档,因此您现在可以执行 col.RemoveAllFromFolder "LatestReportsInCategory"

  5. 一旦您完成了这项工作,您就可以从在新的/修改过的文档上运行的代理调用该函数,或者每晚从报告文档的保存和/或删除事件中调用该函数,或者在任何其他时间调用该函数&# 39;是合适的。此外,如果通过Notes客户端使用,请将文件夹的QueryAddToFolder事件设置为返回False,因为需要代码而非用户更改此文件夹。