首页 文章

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

提问于
浏览
1

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

2 回答

  • 1

    你无法通过视图实现这一目标 . 视图中的文档不能依赖于另一个文档而隐藏 .

  • 0

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

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

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

    • 获取视图的NotesViewNavigator对象 .

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

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

    • 以这种方式浏览视图后,第二个视图中所需的所有文档都将显示在那里,但我们尚未清除LatestReportInCategory字段中的任何过去属于第二个视图的报表 . 但是,所有这些额外的文档现在是NotesDocumentCollection中的唯一文档,因为我们已经减去了所有属于的文档,所以你现在可以做
      col.RemoveAllFromFolder "LatestReportsInCategory"

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

相关问题