Lotus notes 视图列中最常用的单词

Lotus notes 视图列中最常用的单词,lotus-notes,lotusscript,Lotus Notes,Lotusscript,有没有办法从视图中获取最常用的单词。。 例如,如果我有一个列的名称如下 NAME John Mary Jane Alan John Laura John 它将返回John,因为它是出现最多的名称 添加 我不介意使用@Richard Schwartz建议的另一个视图。事实上,我创建了它,并尝试了一些类似的东西,但与您的第一个建议略有不同 这是我的代码,但它没有返回正确的值: Dim var As Variant Set view1 = db2.getView("pomoc") var=vie

有没有办法从视图中获取最常用的单词。。 例如,如果我有一个列的名称如下

NAME
John
Mary
Jane
Alan
John
Laura
John  
它将返回
John
,因为它是出现最多的名称

添加

我不介意使用@Richard Schwartz建议的另一个视图。事实上,我创建了它,并尝试了一些类似的东西,但与您的第一个建议略有不同

这是我的代码,但它没有返回正确的值:

Dim var As Variant
Set view1 = db2.getView("pomoc")
var=view1.GetColumnValues(0)
max=-1
field=""
Forall id In var
    Set ve=view1.GetEntryByKey(id)
    num=ve.ChildCount
    If num>max Then     
        max=num
        field=id
    End If  
End Forall

我还想注册使用次数相同的条目

添加另一个视图可以吗?将其分类,然后编写代码,使用
NotesViewNavigator
浏览类别,查找具有最高
儿童数的
NotesViewEntry

如果无法添加其他视图,则可能必须使用列表:

dim names List as integer
然后编写代码以获取NotesView.AllEntries,使用GetFirstEntry和GetNextEntry遍历NotesViewEntry集合,并对每个NotesViewEntry执行如下语句:

thisName = thisEntry.ColumnValues(N)
names(thisName) = names(thisName) + 1 
maxCount = 0
maxName = ""
forall nameCounter in names
 if nameCounter > maxCount then
   maxCount = nameCounter
   maxName = listtag(nameCounter)
end forall
其中N是包含名称的列N

处理完整个视图后,执行以下操作:

thisName = thisEntry.ColumnValues(N)
names(thisName) = names(thisName) + 1 
maxCount = 0
maxName = ""
forall nameCounter in names
 if nameCounter > maxCount then
   maxCount = nameCounter
   maxName = listtag(nameCounter)
end forall

退出时,maxName将是最常用的名称,maxCount将是发生次数。

是否可以添加其他视图?将其分类,然后编写代码,使用
NotesViewNavigator
浏览类别,查找具有最高
儿童数的
NotesViewEntry

如果无法添加其他视图,则可能必须使用列表:

dim names List as integer
然后编写代码以获取NotesView.AllEntries,使用GetFirstEntry和GetNextEntry遍历NotesViewEntry集合,并对每个NotesViewEntry执行如下语句:

thisName = thisEntry.ColumnValues(N)
names(thisName) = names(thisName) + 1 
maxCount = 0
maxName = ""
forall nameCounter in names
 if nameCounter > maxCount then
   maxCount = nameCounter
   maxName = listtag(nameCounter)
end forall
其中N是包含名称的列N

处理完整个视图后,执行以下操作:

thisName = thisEntry.ColumnValues(N)
names(thisName) = names(thisName) + 1 
maxCount = 0
maxName = ""
forall nameCounter in names
 if nameCounter > maxCount then
   maxCount = nameCounter
   maxName = listtag(nameCounter)
end forall

退出此选项后,maxName将是最常见的名称,maxCount将是发生的次数。

我已将您的后续问题从您的答案转移到您的问题的修订版。由于NotesView.getColumnValues没有文档记录,我真的无法说明上述代码应该做什么。假设GetColumnValues为每个类别返回一个值,并且GetEntryByKey为该键返回类别条目而不是文档条目,那么它看起来应该可以工作。但是你说它不能给你正确的结果(没有说它实际上给你带来了什么),那么为什么不按照我最初的建议使用NotesViewNavigator来浏览类别-使用GetFirst和GetNextCategory?我没有首先使用它,因为我不确定如何使用。。经过一些研究,我提出了这个
Dim var作为NotesViewEntry
设置var=nav.GetFirst()
最大值=-1
做而不做var什么都不是
如果num>max,那么
如果max=num
设置var=nav.GetNextCategory(var)
循环
打印var.ColumnValues(0)
但我不知道如何访问类别名称-最后一行代码给出了错误:“Object Variable not set”(对象变量未设置)我通过将
var.ColumnValues(0)
放入do..while循环中解决了此错误。它是有效的。我已经将您的后续问题从您的答案转移到您的问题的修订版中。好吧,由于NotesView.getColumnValues没有文档记录,我真的不能说上面的代码应该做什么。假设GetColumnValues为每个类别返回一个值,并且GetEntryByKey为该键返回类别条目而不是文档条目,那么它看起来应该可以工作。但是你说它不能给你正确的结果(没有说它实际上给你带来了什么),那么为什么不按照我最初的建议使用NotesViewNavigator来浏览类别-使用GetFirst和GetNextCategory?我没有首先使用它,因为我不确定如何使用。。经过一些研究,我提出了这个
Dim var作为NotesViewEntry
设置var=nav.GetFirst()
最大值=-1
做而不做var什么都不是
如果num>max,那么
如果max=num
设置var=nav.GetNextCategory(var)
循环
打印var.ColumnValues(0)
但我不知道如何访问类别名称-最后一行代码给出了错误:“Object Variable not set”(对象变量未设置)我通过将
var.ColumnValues(0)
放入do..while循环中解决了此错误。它是有效的。