Вопрос

Я пытаюсь использовать текущий день в GetAllEntriesByKey, передавая массив.Массив до сих пор выглядит следующим образом

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

Я хотел бы сказать вот что

Set vc = view.GetAllEntriesByKey(keyarray, False)  

Вот ряд примеров того, как это выглядит, когда работает.Агент тестирования распечатывает CSV-файл по электронной почте.

Ф.Ф. Томпсон ADT,03.02.2009,11:45:02 вечера,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

Я не знаю, полезно ли это, но я читал об Оценке здесь.

То, что я в конечном счете пытаюсь сделать, это 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

Спасибо за любую помощь или предложения.Они очень ценятся.

Это было полезно?

Решение 2

Вот ответ, который я нашел

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)

Другие советы

Я использовал метод GetAllEntriesByKey только с массивом строк.Я никогда не пробовал смешивать типы.Но если предположить, что для этого метода допустимы разные типы, проблема может заключаться в разнице между типами datetime в Notes.Есть базовый тип LS datetime, а затем есть объект NotesDateTime .Я бы поспорил, что представление рассматривает столбец date как состоящий из основных типов datetime, и поэтому он завершается с ошибкой, когда вы передаете тип NotesDateTime.

Но если оставить в стороне эту проблему, мое предложение состоит в том, чтобы создать представление, содержащее столбцы, к которым вы хотите получить доступ, и установить порядок сортировки первого столбца (содержащего FF Thompson ADT) в asc, затем установить для второго столбца с вашими датами значение desc.Затем вы можете получить доступ к просмотренным записям в нужном вам порядке, причем самая последняя будет первой, вторая - самой последней 2-й и т.д.

Если по какой-то случайности метод GetAllEntriesByKey вернет документы не по порядку (я забыл, гарантирует ли он порядок), я знаю, что делал это до использования класса NotesViewNavigator .Определенно есть альтернативный способ сделать это без необходимости вызывать GetAllEntriesByKey с ключом date .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top