Question

Je suis en train d'utiliser la journée en cours dans GetAllEntriesByKey en passant un tableau. Le tableau ressemble si loin comme ça

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

Je voudrais dire

Set vc = view.GetAllEntriesByKey(keyarray, False)  

Voici une rangée de quoi il ressemble quand il fonctionne. L'agent de test imprime csv dans un courriel.

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

Je ne peux pas sembler passer un jour datetime courant qui fonctionne. Je peux régler la dateTime manuellement dans la déclaration et il fonctionne. Je pense qu'il est parce qu'il essaie de passer aussi le temps, mais je ne sais pas. J'ai essayé trois voies et il dit type de valeur clé non valide.

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

Je ne sais pas si cela est utile, mais j'ai lu sur ÉVALUER ici .

Ce que je vais essayer de faire en fin de compte est GetFirstEntry pour « FF Thompson ADT » pour les plus récentes entrées de jour existent. Je suis aussi essayer de faire la même chose pour le jour avant. J'essaie de résumer les dossiers traités (le nombre 6) pour les deux jours et les erreurs (NULL) pour le jour le plus récent en utilisant quelque chose comme ça. J'ai besoin de ruser il trouve les fichiers traités et erreurs pour les entrées mais je n'y ai pas eu, mais devrait être en mesure de le faire. Je suis aussi juste essayer de trouver la date la plus récente valeur de temps pour l'alimentation-à-dire « 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

Merci pour toute aide ou suggestions. Ils sont très appréciés.

Était-ce utile?

La solution 2

Voici une réponse que je trouve

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)

Autres conseils

Je ne l'ai utilisé la méthode GetAllEntriesByKey avec un tableau de chaînes. Je ne l'ai jamais essayé les types de mélange. Mais en supposant différents types sont valables pour cette méthode, le problème peut se situer dans la différence entre les types datetime dans les notes. Il y a un noyau de type datetime LS et puis il y a un objet NotesDateTime. Je parie que la vue considère une colonne de date à être composée des types datetime de base, et il échoue lorsque vous passez le type de NotesDateTime.

Mais cette question de côté, ma suggestion est de créer une vue qui a les colonnes que vous souhaitez accéder, et définir l'ordre de tri de la première colonne (contenant FF Thompson ADT) à asc, puis définissez la deuxième colonne avec les dates à desc. Vous pouvez alors accéder aux entrées de vue dans l'ordre que vous voulez, le plus récent étant le premier, 2e plus récente 2e, etc.

Si, par hasard, la méthode GetAllEntriesByKey renvoie les documents hors d'usage (j'oublie si elle garantit l'ordre), je sais que je l'ai fait avant d'utiliser la classe NotesViewNavigator. Il y a certainement une autre façon de le faire sans avoir besoin d'appeler GetAllEntriesByKey avec la touche de date.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top