如何使用特定字段的计数创建视图

时间:2015-10-23 15:38:04

标签: lotus-notes lotus-formula

我正在尝试创建一个具有完全相同值的字段的所有Notes文档的分类视图,即有一个承包商名称字段,我想创建一个列出每个承包商的视图以及与每个文档相关的文档。我该怎么做呢?我已经尝试了以下视图公式但尚未成功

SELECT @IsAvailable(Contractorid) & @Count(Contractorid) > 1

SELECT @Count(@IsAvailable(Contractorid)) >1

2 个答案:

答案 0 :(得分:2)

Nsf数据库不是关系数据库。在特定字段中具有唯一值的不同文档的计数不能用于构建视图选择公式。

您可以编写一个代理程序,该代理程序会遍历所有文档并对其进行计数并将所有文档全部计为> 1在一个文件夹中,但这是很多LotusScript代码,需要一些高级知识。

另一种可能性是通过ContractorId对视图进行分类,并在该分类列之前添加一列:只需使用1作为列公式,并在列属性中选择“显示总计”以及“隐藏详细信息”

然后至少你有这些信息,每个类别中有多少文件,但不幸的是你不能按它过滤,你不能按此栏排序。

第三种可能性是使用xpage界面,但这是更多的工作要做,而且是一个完全不同的故事。

答案 1 :(得分:0)

这类似于识别重复的视图。我的方法是使用文件夹

制作一个包含视图设计的新文件夹。而不是(不工作)选择公式使用短LS代码作为操作,或使用QueryOpen事件(确保只有一个用户运行脚本)。

代码应与Contractorid排序的另一个(隐藏)视图配合使用。为该视图创建一个ViewNavigator并使用简单的逻辑遍历它 - 如果上一个条目与当前条目具有相同的Contractorid,则将两个文档放入文件夹**。这样,您将获得具有重复Contractorid的所有文档的列表。确保在开始时擦除文件夹中的所有当前内容。

**这可以通过稍微复杂的算法进一步优化,以便不同地处理第一个重复 - 对于两个以上的重复,这个算法会额外调用PutInFolder方法。