Domanda

Sto cercando di utilizzare il giorno corrente in GetAllEntriesByKey passando un array. La matrice sembra così lontano come questo

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

Vorrei dire che questo

Set vc = view.GetAllEntriesByKey(keyarray, False)  

Ecco una fila di quello che sembra quando funziona. L'agente di test viene stampato csv in un'email.

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

Non riesco a passare un dateTime giorno corrente che scorre. Posso impostare il dateTime manualmente nella dichiarazione e funziona. Penso che sia perché si sta cercando di passare anche il tempo, ma non lo so. Ho provato tre modi e si dice non valida tipo di valore chiave.

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

Non so se questo è utile, ma ho letto di valutare qui .

Quello che sto in ultima analisi, cercando di fare è GetFirstEntry per "FF Thompson ADT" per le voci esistono giorno più recenti. Sto anche cercando di fare lo stesso per il giorno prima. Sto cercando di riassumere i file elaborati (il numero 6) per entrambi i giorni e gli errori (il null) per il giorno più recente utilizzando qualcosa di simile. Ho bisogno di modificarlo in modo che trova i file elaborati e gli errori per le voci, ma non ho ottenuto lì, ma dovrebbe essere in grado di fare. Sto anche cercando di trovare la data più recente con valore temporale per la ie alimentazione "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

Grazie per qualsiasi aiuto o suggerimenti. Essi sono molto apprezzate.

È stato utile?

Soluzione 2

Ecco una risposta che ho trovato

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)

Altri suggerimenti

Ho usato solo il metodo GetAllEntriesByKey con un array di stringhe. Non ho mai provato i tipi di miscelazione. Ma assumendo tipi differenti sono validi per tale metodo, il problema potrebbe risiedere nella differenza tra i tipi di data e ora in Notes. C'è un nucleo di tipo LS datetime e poi c'è un oggetto NotesDateTime. Scommetto la vista considera una colonna di data per essere formato dai tipi datetime di base, e così viene a mancare quando si passa il tipo di NotesDateTime.

Ma tale questione a parte, il mio suggerimento è quello di creare una vista che ha le colonne che si desidera accedere e impostare il tipo di ordinamento della prima colonna (contenente FF Thompson ADT) per asc, quindi impostare la seconda colonna con le date al disc. È quindi possibile accedere alle voci vista nell'ordine desiderato, con il più recente è primo, 2 ° 2 più recente, ecc

Se per caso il metodo restituisce i GetAllEntriesByKey documenti fuori ordine (non ricordo se assicura ordine), So che ho fatto prima utilizzando la classe NotesViewNavigator. C'è sicuramente un modo alternativo per farlo senza bisogno di chiamare GetAllEntriesByKey con la chiave data.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top