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循环中解决了此错误。它是有效的。