我正在尝试通过传递数组来使用GetAllEntriesByKey中的当前日期。到目前为止,该数组看起来像这样
Dim keyarray(2) As Variant
keyarray(0) = "FF Thompson ADT"
Set keyarray(1) = dateTime
我想说这个
Set vc = view.GetAllEntriesByKey(keyarray, False)
以下是它工作时的样子。测试代理在电子邮件中打印出csv。
FF Thompson ADT,2/3 / 2009,11:45:02 PM,0,6,0,00:00:04,5400,4
我似乎无法通过当天运行的dateTime。我可以在声明中手动设置dateTime并且它可以工作。我想这是因为它也试图打发时间,但我不知道。我尝试了三种方法,它表示无效键值类型。
Dim dateTime As New NotesDateTime("")
Call dateTime.LSLocalTime = Now
...
keyarray(1) = dateTime.Dateonly
Dim dateTime As New NotesDateTime("")
Call dateTime.SetNow
...
keyarray(1) = dateTime.Dateonly
Dim dateTime As New NotesDateTime("Today")
...
keyarray(1) = dateTime.Dateonly
我不知道这是否有用,但我读到了评估here。
我最终要做的是GetFirstEntry为“FF Thompson ADT”存在最近一天的条目。我也试图在前一天做同样的事情。我试图用最新的一天总结处理过的文件(数字6)和最近一天的错误(空值)。我需要调整它,以便它找到处理的文件和条目的错误,但我没有到达但应该能够做到。我也只是想找到最近的日期和饲料的时间值,即“FF Thompson ADT”。
Set entry = vc.GetFirstEntry
filesprocessed = 0
Dim errors, errortotal As Integer
errors = 0
errorstotal = 0
While Not entry Is Nothing
rowval = 0
errors = 0
Forall colval In entry.ColumnValues
If rowval > 0 Then
errors = Cint(colval)
Else
rowval = Cint(colval)
End If
End Forall
filesprocessed = filesprocessed + rowval
errorstotal = errorstotal + errors
Set entry = vc.GetNextEntry(entry)
Wend
感谢您提供任何帮助或建议。非常感谢他们。
答案 0 :(得分:1)
我只使用带有字符串数组的GetAllEntriesByKey方法。我从来没有尝试过混合类型。但假设不同类型对该方法有效,问题可能在于Notes中日期时间类型之间的差异。有一个核心LS日期时间类型,然后有一个NotesDateTime对象。我敢打赌,视图会将日期列视为核心日期时间类型,因此在传递NotesDateTime类型时会失败。
但是除了这个问题之外,我的建议是创建一个包含您要访问的列的视图,并将第一列(包含FF Thompson ADT)的排序顺序设置为asc,然后将第二列设置为您的日期去desc。然后,您可以按照所需的顺序访问视图条目,最新的是第一个,第二个最近的第二个,等等。
如果有可能GetAllEntriesByKey方法无序返回文档(我忘了它是否保证顺序),我知道在使用NotesViewNavigator类之前我已经完成了这个。肯定有另一种方法可以使用日期键调用GetAllEntriesByKey。
答案 1 :(得分:1)
这是我找到的答案
Dim todaysdate As New NotesDateTime("Today")
Dim dateTime As New NotesDateTime(todaysdate.DateOnly)
Dim keyarray(1) As Variant keyarray(0) = feedname
Set keyarray(1) = dateTime
Set vc = view.GetAllEntriesByKey(keyarray, False)