当前位置: 代码迷 >> Lotus >> 为啥用view.getAllEntriesByKey取出来的ViewEntriCollection中的entry无效(isValid=false),该怎么处理
  详细解决方案

为啥用view.getAllEntriesByKey取出来的ViewEntriCollection中的entry无效(isValid=false),该怎么处理

热度:111   发布时间:2016-05-05 07:04:03.0
为啥用view.getAllEntriesByKey取出来的ViewEntriCollection中的entry无效(isValid=false)
以下程序

Dim   s   As   New   NotesSession
Dim   db   As   NotesDatabase
Dim   vw   As   NotesView
Dim   vec   As   NotesViewEntryCollection
Dim   vetr   As   NotesViewEntry
Dim   doc     As   NotesDocument

Set   db   =   s.currentDatabase
Const   C_ViewUnitYear= "vsUnitYear "
Set   vw=db.getView(C_ViewUnitYear)
Dim   paras(1   To   2)   As   Variant
paras(1)= "xx处 "
paras(2)= "2006 "

'Set   vec=vw.AllEntries '正常
Set   vec=vw.getAllEntriesByKey(paras,True)
Set   vetr=vec.getFirstEntry()
Dim   i   As   Integer
i=1
Do   Until   (   (vetr   Is   Nothing)   Or   Isnull(vetr)   Or   i> 10)
If(Not   vetr.IsValid)   Then
Msgbox     Cstr(i)+ "   "+ "not   valid "
Else
Set   doc=vetr.document
Msgbox   Cstr(i)+ "   "+doc.Subject(0)
End   If
Set   vetr=vec.getNextEntry(vetr)
i=i+1
Loop

        由Set   vec=vw.getAllEntriesByKey(paras,True),得到的集合Count是对的,可是每个Entry都是isValid=false。而由 'Set   vec=vw.AllEntries则是正常的。
        帮助里说isValid=false是因为文档已经被删除,可是没那么回事啊。到底是怎么回事呢?


------解决方案--------------------
在程序上看不出什么问题,你看看set doc = vetr.document 这个document有吗?
  相关解决方案