Pergunta

Eu estou tentando usar o dia atual em GetAllEntriesByKey passando um array. A matriz tão longe se parece com isso

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

Eu gostaria de dizer isto

Set vc = view.GetAllEntriesByKey(keyarray, False)  

Aqui está uma linha do que parece quando ele funciona. O agente de teste imprime csv em um email.

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

Eu não consigo passar um dia dateTime corrente que é executado. Eu posso definir o dateTime manualmente na declaração e ele funciona. Eu acho que é porque ele está tentando também passar o tempo, mas eu não sei. Eu tentei três maneiras e ele diz que tipo de valor de chave inválido.

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

Eu não sei se isso é útil, mas eu li sobre Avaliar aqui .

O que em última análise, estou tentando fazer é GetFirstEntry para "FF Thompson ADT" para existir as entradas mais recentes dia. Eu também estou tentando fazer o mesmo para o dia antes disso. Eu estou tentando resumir os arquivos processados ??(o número 6) para ambos os dias e erros (o nulo) para o dia mais recente usando algo parecido com isso. Eu preciso ajustá-lo para que ele encontra os arquivos processados ??e erros para entradas, mas eu não ter chegado lá, mas deve ser capaz de fazer. Eu também estou apenas tentando encontrar a data mais recente com valor de tempo para a alimentação ou seja, "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

Obrigado por qualquer ajuda ou sugestões. Eles são muito apreciados.

Foi útil?

Solução 2

Aqui está uma resposta que encontrei

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)

Outras dicas

Eu só usei o método GetAllEntriesByKey com uma série de cordas. Eu nunca tentei misturar tipos. Mas assumindo tipos diferentes são válidos para esse método, o problema pode estar na diferença entre data e hora tipos em Notes. Há um núcleo LS datetime tipo e, em seguida, há um objeto NotesDateTime. Eu aposto o ponto de vista considera uma coluna de data a ser composta dos tipos de data e hora do núcleo, e por isso falha quando você passar o tipo NotesDateTime.

Mas essa questão de lado, a minha sugestão é criar uma visão que tem as colunas que você deseja acessar e definir a ordem de classificação da primeira coluna (contendo FF Thompson ADT) para asc, em seguida, definir a segunda coluna com as datas de desc. Você pode acessar as entradas vista na ordem que você quiser, com o mais recente em primeiro lugar, segundo o 2 mais recente, etc.

Se por algum acaso o método GetAllEntriesByKey retorna os documentos fora de ordem (eu esqueço se garantir ordem), eu sei que eu tenho feito isso antes de usar a classe NotesViewNavigator. Há definitivamente uma maneira alternativa de fazê-lo sem necessidade de chamar GetAllEntriesByKey com a chave de data.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top