0

我试图通过传递一个数组来使用 GetAllEntriesByKey 中的当前日期。到目前为止的数组看起来像这样

Dim keyarray(2) As Variant  
keyarray(0) = "FF Thompson ADT"  
Set keyarray(1) = dateTime  

我想说这个

Set vc = view.GetAllEntriesByKey(keyarray, False)  

这是它工作时的样子。测试代理在电子邮件中打印出 csv。

FF 汤普森 ADT,2/3/2009,11:45:02 PM,0,6,0,,00:00:04,5400,4

我似乎无法通过当前运行的日期时间。我可以在声明中手动设置 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

我不知道这是否有用,但我在这里读到了 Evaluate 。

我最终要做的是 GetFirstEntry 用于“FF Thompson ADT”,因为最近一天的条目存在。我也在尝试在前一天做同样的事情。我正在尝试使用类似这样的方法总结最近一天处理的文件(数字 6)和最近一天的错误(null)。我需要对其进行调整,以便找到已处理的文件和条目错误,但我还没有到达那里,但应该能够做到。我也只是想找到提要的时间值的最新日期,即“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

感谢您的任何帮助或建议。他们非常感激。

4

2 回答 2

1

我只对字符串数组使用了 GetAllEntriesByKey 方法。我从未尝试过混合类型。但是假设不同的类型对该方法有效,问题可能在于 Notes 中日期时间类型之间的差异。有一个核心 LS 日期时间类型,然后有一个 NotesDateTime 对象。我敢打赌,视图认为日期列由核心日期时间类型组成,因此当您传递 NotesDateTime 类型时它会失败。

但除了这个问题,我的建议是创建一个包含您要访问的列的视图,并将第一列(包含 FF Thompson ADT)的排序顺序设置为 asc,然后将带有日期的第二列设置为 desc。然后,您可以按您想要的顺序访问视图条目,最近的是第一个,最近的第二个是第二个,等等。

如果 GetAllEntriesByKey 方法偶然返回了无序的文档(我忘记了它是否保证顺序),我知道我在使用 NotesViewNavigator 类之前已经完成了这个。肯定有另一种方法可以做到这一点,而无需使用日期键调用 GetAllEntriesByKey。

于 2009-02-19T18:05:17.727 回答
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)
于 2009-02-20T09:35:06.163 回答